Log4Net

Log4Netの設定サンプル

More than 1 year has passed since last update.

log4netアペンダサンプル

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
  <!-- 静的ファイル出力先 -->
  <File value="D:\Log\AppInfo-" />
  <!-- 動的ファイル出力先 -->
  <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
  <!-- ログを追記するかどうか -->
  <AppendToFile value="true" />
  <!-- ログの出力単位 -->
  <RollingStyle value="Date" />
  <!-- 出力先を静的にするか -->
  <StaticLogFileName value="false" />
  <!-- ログの排他制御:最小(ログの分裂防止) -->
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <!-- ログの出力書式 -->
  <layout type="log4net.Layout.PatternLayout">
    <ConversionPattern value="%date [%thread] [%-5level] [%class] (%method) - %message%n" />
  </layout>
  <!-- ログの出力範囲 -->
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="INFO" />
    <levelMax value="INFO" />
  </filter>
</appender>

アペンダ毎にロガーインスタンスを分けたい

<root>
  <!-- ログの出力レベル -->
  <level value="ALL" />
  <!-- 標準アペンダ -->
  <appender-ref ref="InfoAppender" />
  <appender-ref ref="ErrorAppender" />
  <appender-ref ref="WarnAppender" />
</root>
<!-- ジョブログ用ロガー -->
<!-- name=ロガー名、additivity=rootの継承可否 -->
<category name="HogeLog" additivity="false">
  <!-- ログの出力レベル -->
  <level value="ALL" />
  <appender-ref ref="HogeInfoAppender" />
  <appender-ref ref="HogeErrorAppender" />
  <appender-ref ref="HogeWarnAppender" />
</category>

あとはLogManager.GetLogger("カテゴリ名")で可能
カテゴリ名が無い場合はrootを取ってくる模様