①nugetでlog4netインストール
②AssemblyInfo.csにLog4net設定値の保存場所を設定
\Properties\AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
→Web.configからLog4net設定値がよみこまれる
③Web.configにLog4net設定値記載
log4netの設定を セクションに書くことを宣言しておきます。
Web.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
ログの出力形態(どこに出力するか)を記述します。
Web.config
<log4net>
<!-- ファイルアペンダ(ローテーションあり) -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="C:\weblogger\log_upload."/>"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="date"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value=""."yyyyMMdd".log""/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %5p (%C:%M:%L) - %m%n"/>
</layout>
</appender>
<root>
<priority value="INFO"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
以下の通り記述するとエラーレベル毎に出力ファイル名が分けられる。
Web.config
<log4net>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="C:\weblogger\log_debug."/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="date"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value=""."yyyyMMdd".log""/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %5p (%C:%M:%L) - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="DEBUG" />
</filter>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="C:\weblogger\log_info."/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="date"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value=""."yyyyMMdd".log""/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %5p (%C:%M:%L) - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
</filter>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="C:\weblogger\log_error."/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="5MB"/>
<param name="RollingStyle" value="date"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value=""."yyyyMMdd".log""/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %5p (%C:%M:%L) - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR" />
</filter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="ErrorAppender" />
</root>
</log4net>
出力レベルを変更するときはlevel value="DEBUG"の設定値を変更する。