久々にC#を使って、LOGを出力する際にいろいろ調べたのがめんどくさかったので
自分なりに使いやすいLOG4NET用のコンフィグを残しておく。
アセンブリに関する情報
AssemblyInfo.csに以下を追記。
一番下でOK
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Log4net.Config.xml", Watch = true)]
Configの実際の内容
以下の内容のLog4net.Config.xmlを作成
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<!-- 通常ログ -->
<appender name="InfoLogAppender" type="log4net.Appender.RollingFileAppender">
<File value=".\\Logs\\Info_" />
<!-- ファイル名は日付ごと -->
<param name="DatePattern" value='yyyyMMdd".log"' />
<param name="RollingStyle" value="date" />
<param name="StaticLogFileName" value="false" />
<param name="MaximumFileSize" value="10MB" />
<param name="MaxSizeRollBackups" value="10" />
<param name="AppendToFile" value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="WARN" />
<param name="LevelMin" value="INFO" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %class %method (L%line) - %message%n" />
</layout>
</appender>
<!-- エラーログ -->
<appender name="ErrorLogAppender" type="log4net.Appender.RollingFileAppender">
<File value=".\\Logs\\Error_" />
<!-- ファイル名は日付ごと -->
<param name="DatePattern" value='yyyyMMdd".log"' />
<param name="RollingStyle" value="date" />
<param name="StaticLogFileName" value="false" />
<param name="AppendToFile" value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="FATAL" />
<param name="LevelMin" value="ERROR" />
</filter>
<param name="MaximumFileSize" value="10MB" />
<param name="MaxSizeRollBackups" value="10" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %class %method (L%line) - %message%n" />
</layout>
</appender>
<!-- デバッグ用:分割ファイル出力 -->
<appender name="DebugLogAppender" type="log4net.Appender.RollingFileAppender">
<File value=".\\Logs\\Trace_" />
<!-- ファイル名は日付ごと -->
<param name="DatePattern" value='yyyyMMdd".log"' />
<!-- ファイル名は日付ごと -->
<param name="RollingStyle" value="date" />
<param name="StaticLogFileName" value="false" />
<param name="AppendToFile" value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="FATAL" />
<param name="LevelMin" value="TRACE" />
</filter>
<param name="MaximumFileSize" value="10MB" />
<param name="MaxSizeRollBackups" value="10" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %class %method (L%line) - %message%n" />
</layout>
</appender>
<!-- コンソール -->
<appender name="ColoredConsole" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="FATAL" />
<foreColor value="White" />
<backColor value="Red" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Purple" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Purple" />
<backColor value="White" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="White" />
<backColor value="Blue" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
<backColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%t] %p - %m%n"/>
</layout>
</appender>
<root>
<!-- TRACE以上のログを記録 -->
<level value="TRACE" />
<!-- 使用する Appender -->
<appender-ref ref="InfoLogAppender" />
<appender-ref ref="ErrorLogAppender" />
<appender-ref ref="DebugLogAppender" />
<appender-ref ref="ColoredConsole" />
</root>
</log4net>
</configuration>