Log4net(11) 設定ファイルの概要

設定ファイルから読み込ませる方法を解説したので、次は設定ファイルの書き方を説明しよう。といっても、設定ファイルはわりと直感的なので、詳しい説明は特に必要ないだろう。

設定ファイルのフォーマット

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  appenderの記述(1つ以上)
  root logger についての記述(1つ)
  logger を追加(0以上)
</log4net>
  • appenderの記述
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
</appender>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
    <param name="File" value="Sample.log" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]" />
        <param name="Footer" value="[Footer]" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
</appender>

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Rolling.log" />
    <param name="AppendToFile" value="true" />
    <param name="MaxSizeRollBackups" value="10" />
    <param name="MaximumFileSize" value="100KB" />
    <param name="RollingStyle" value="Composite" />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]" />
        <param name="Footer" value="[Footer]" />
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
</appender>
:
:
:
好きなだけappenderを記述していく
  • root loggerの記述
    WARNレベル以上のログを出力し、LogFileAppenderとConsoleAppenderが対象となる
<root>
    <level value="WARN" />
    <appender-ref ref="LogFileAppender" />
    <appender-ref ref="ConsoleAppender" />
</root>
  • 名前Sample.LoggingExampleというロガーを追加
    全レベルのログを出力し、LogFileAppenderとRollingLogFileAppenderが対象となる
<logger name="Sample.LoggingExample">
    <level value="ALL" />
    <appender-ref ref="LogFileAppender" />
    <appender-ref ref="RollingLogFileAppender" />
</logger>

結局こんな設定ファイルとなる

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <!-- ======================================================================= -->
    <!-- 1. appender の記述                                                      -->
    <!-- ======================================================================= -->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        </layout>
    </appender>

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <param name="File" value="Sample.log" />
        <param name="AppendToFile" value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="Header" value="[Header]" />
            <param name="Footer" value="[Footer]" />
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        </layout>
    </appender>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="Rolling.log" />
        <param name="AppendToFile" value="true" />
        <param name="MaxSizeRollBackups" value="10" />
        <param name="MaximumFileSize" value="100KB" />
        <param name="RollingStyle" value="Composite" />
        <param name="StaticLogFileName" value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="Header" value="[Header]" />
            <param name="Footer" value="[Footer]" />
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
        </layout>
    </appender>

    <!-- ======================================================================= -->
    <!-- 2. root logger の設定                                                   -->
    <!-- ======================================================================= -->
    <root>
        <level value="WARN" />
        <appender-ref ref="LogFileAppender" />
        <appender-ref ref="ConsoleAppender" />
    </root>

    <!-- ======================================================================= -->
    <!-- 3. 各種loggerの設定                                                     -->
    <!-- ======================================================================= -->
    <logger name="Sample.LoggingExample">
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
        <appender-ref ref="RollingLogFileAppender" />
    </logger>
</log4net>