[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>
    <!-- 日付でRollingするファイルAppenderの例 -->
    <appender name="DayRollingLogToFile" type="log4net.Appender.RollingFileAppender">
      <!-- ログ・ファイル名の先頭部分 -->
      <File value="C:\Work\MyLog" />
      <!-- 追加書き込み -->
      <appendToFile value="true" />
      <!-- 日付ごとにファイルを作成することを指定 -->
      <rollingStyle value="date" />
      <!-- ログ・ファイル名が固定ではないのため“false”を指定 -->
      <staticLogFileName value="false" />
      <!-- ファイル名の日付部分 -->
      <datePattern value='"."yyyyMMdd".log"' />

      <layout type="log4net.Layout.PatternLayout">
        <!-- ログの書式 -->
        <conversionPattern value="%d[%t] %p - %m%n"/>
      </layout>
    </appender>

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

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

作成するファイルは <file>タグの value 属性に 出力先のログファイルのパスを指定します(11行目)。今回は日付ごとにバックアップを取るのでファイル名の先頭までをvalueに設定しておきます。

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

日付ごとにファイルを作成するために<rollingStyle>タグの value属性に”date”を指定します(15行目)。

また、ログファイル名に日付を入れることによってファイル名が固定ではなくなるため、<staticLogFileName>タグのvalue属性に false を指定します(17行目)。

ファイル名の日付部分は<datePattern>タグのvalue属性に指定します(19行目)。

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

実行結果例

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください