設定ファイルを別途置かないやり方。
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 にログがたまる