Log4net(10) 設定ファイル

今までのように、コード内にAppenderの設定を書いていたら、ログ出力の設定を変更したい場合にリビルドしないといけなくなるので、それはちとやっかい。なので、設定ファイルからログ出力情報を操作できるようにしよう。

方法1:AssemblyInfo.cs に記述する

    1. AssemblyInfo.csに
      [assembly: log4net.Config.DOMConfigurator(ConfigFile="../../log4net.xml", Watch = true)]
      という行を追加
    2. 実行ファイルの作成されるフォルダ(DebugやRelease)から、2つ上のフォルダ(おそらく、プロジェクトファイルがあるフォルダ)に
      log4net.xml
      というファイルを作成する
    3. ファイルの内容は
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
	</configSections>

	<log4net>
		<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="log/hoge" />
			<param name="AppendToFile" value="true" />
			<param name="RollingStyle" value="Composite" />
			<param name="StaticLogFileName" value="false" />
			<param name="CountDirection" value="-1" />
			<param name="MaximumFileSize" value="3KB" />
			<param name="MaxSizeRollBackups" value="2" />
			<param name="DatePattern" value="'.'yyyyMMdd'.log'" />
			<layout type="log4net.Layout.PatternLayout">
				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n %l" />
			</layout>
		</appender>		

		<root>
			<level value="ALL" />
			<appender-ref ref="RollingFileAppender" />
		</root>
	</log4net>
</configuration>

方法2:XmlConfiguratorで読み込む

    • log4net.Config.XmlConfiguratorAttribute(new System.IO.FileInfo(@"../../log4net.xml"));
      で、設定ファイルを読み込ませる(内容は上のやつでOK)