読者です 読者をやめる 読者になる 読者になる

ふるすたっくえんじにあっぽい人の日記

ASP .NET MVC (C#)、.NET Framework、iOS (Objective-c) アプリ、Androidアプリ (Java)、AWS、たまにLAMPとかプロジェクトマネジメントあたりのお話

【C#】Log4net入門

Log4netも長いお付き合いでして。。
最初に触ったのは、もう何年前だか。。

とりあえずLog4netをダウンロード
http://logging.apache.org/log4net/download.html

ソリューションエクスプローラーから、対象のプロジェクト右クリック→参照の追加で先ほどダウンロードしたlog4net.dllを追加
ローカルコピーはTrueにしておいてねー

で、.NETの場合、log4net.xmlを用意。内容はこんな感じ。説明は割愛!

<?xml version="1.0" encoding="utf-8" ?>

<log4net>
  <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
    <file value="c:/MyAppDebug" />
    <appendToFile value="true" />
    <maximumFileSize value="10000KB" />
    <maxSizeRollBackups value="2" />
    <param name="DatePattern" value='"."yyyy-MM-dd".log"' />
    <param name="RollingStyle" value="date " />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %-5level (%class.%method:%line) - %message%newline" />
    </layout>
  </appender>
  <logger name="DebugLogger">
    <level value="DEBUG" />
    <appender-ref ref="DebugLog" />
  </logger>
</log4net>

ASP.NETの場合はWeb.Configに

  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <log4net>
    <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
      <file value="./log/"/>
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Size"/>
      <param name="RollingStyle" value="Composite"/>
      <param name="MaximumFileSize" value="10000KB"/>
      <param name="MaxSizeRollBackups" value="2"/>
      <param name="StaticLogFileName" value="false"/>
      <param name="DatePattern" value="yyyy-MM-dd.log"/>
      <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %-5level (%class.%method:%line) - %message%newline" />
      </layout>
    </appender>
    <logger name="DebugLogger">
      <level value="DEBUG"/>
      <appender-ref ref="DebugLog"/>
    </logger>
  </log4net>

で、ログの出力はこう

using log4net;

// logger nameに指定した名前だよー
var logger = LogManager.GetLogger("DebugLogger");
logger.Debug("てすと!");