[log4net] ログをファイルに出力する ~ファイルサイズでログを分ける~

スポンサーリンク

Appender にlog4net.Appender.RollingFileAppenderを使用すると、ファイルにログを出力することができます。また、指定したファイルサイズを超えたときに新しいログファイルを作成することが可能です。

App.configの例を以下に示します。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

  <log4net>

    <appender name="SizeRollingLogToFile" type="log4net.Appender.RollingFileAppender">
      <!-- 作成するログファイル -->
      <file value="C:\Work\MyLog.log" />
      <!-- 追加で書き込みをする -->
      <appendToFile value="true" />
      <!-- ファイルサイズで Rollong -->
      <rollingStyle value="Size" />
      <!-- 最大バックアップファイル数 -->
      <maxSizeRollBackups value="5" />
      <!-- ファイルサイズの上限 -->
      <maximumFileSize value="1MB" />
      
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d[%t] %p - %m%n"/>
      </layout>
    </appender>

    <root>
      <!-- すべてのログを出力したい場合 -->
      
      <level value="All" />
      <!-- どのログ出力先を使用するか -->
      <appender-ref ref="SizeRollingLogToFile" />
    </root>
  </log4net>
</configuration>

App.config 設定の説明
まず、ファイルにログを出力するために、Appenderのtype(9行目)には log4net.Appender.FileAppender を指定します。

作成するファイルは <file>タグの value 属性に 出力先のログファイルのパスを指定します(11行目)。

ログを追加書き込みする場合は <appendToFile>タグの value属性に”AppendToFile” を指定します(13行目)。

今回、ファイルサイズに上限を持たせてログを作成するため、<rollingStyle>タグのvalue属性にtrueを指定します(15行目)。

ファイルサイズが上限を超えるとバックアップを取って新しくログが作成されます。このときいくつまでバックアップを残すかを決めるには、<maxSizeRollBackups>のvaluse属性で設定します(17行目)。

ファイルサイズの上限は<maximumFileSize>タグのvalue属性で設定します。1MBのように指定することができます(19行目)。

上記の設定を利用してログを作成した実行結果例は以下の通りです。

実行結果例

Please follow and like us:

コメント

  1. NOMI より:

    17行目の
    は”true”ではなく、”false”ですかね?

タイトルとURLをコピーしました