設定ファイルを別途置かないやり方。
AssemblyInfo.cs に追記
// read Log4Net Configuration file [assembly: log4net.Config.XmlConfigurator(Watch = true)]
App.Configに以下追記
<configuration> ... <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> ... <log4net> <!--通常ログ:単一ファイル出力 --> <appender name="InfoLogDailyAppender" type="log4net.Appender.FileAppender"> <file value="${APPDATA}\\会社名\\ソフト名\\Logs\\Info.log" /> <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] %message%n" /></layout> </appender> <!--エラーログ:分割ファイル出力 --> <appender name="ErrorLogDailyAppender" type="log4net.Appender.RollingFileAppender"> <!--ファイル名は日付ごと --> <param name="File" value="${APPDATA}\\会社名\\ソフト名\\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] %message%n" /></layout> </appender> <!--デバッグ用:分割ファイル出力 --> <appender name="DebugLogDailyAppender" type="log4net.Appender.RollingFileAppender"> <!--ファイル名は日付ごと --> <param name="File" value="${APPDATA}\\会社名\\ソフト名\\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] %message%n" /></layout> </appender> <root> <!--TRACE以上のログを記録 --> <level value="TRACE" /> <!--使用する Appender --> <appender-ref ref="InfoLogDailyAppender" /> <appender-ref ref="ErrorLogDailyAppender" /> <appender-ref ref="DebugLogDailyAppender" /> </root> </log4net> ... </configuration>
使うときの初期設定はこちら
ILog logger; logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
こうすると
C:\Users\ユーザー名\AppData\Roaming\会社名\ソフト名\Logs にログがたまる