到http://logging.apache.org/log4net/download_log4net.cgi下载log4net配置文件。
选择一项进行下载,将下载后的文件进行解压缩,打开og4net-1.2.13-bin-newkey\log4net-1.2.13\bin\net\4.0\release文件夹。
将log4net.dll复制到代码目录下,并且将其引用。
在项目Properties文件夹下有一个AssemblyInfo.cs文件,打开这个文件
在尾部添加一行[assembly:log4net.Config.DOMConfigurator(Watch=true)]
在app.config中添加如下内容:
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<log4net>
<!--使用Rolling方式记录日志按照日来记录日志-->
<appender name="RunLog" type="log4net.Appender.RollingFileAppender">
<!--文件名,可以相对路径,也可以绝对路径,这里只给定了文件夹-->
<file value="log\\runtime\\"/>
<!--最小锁定模型以允许多个进程可以写入同一个文件,解决文件独占问题-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<!--是否增加文件-->
<appendToFile value="true"/>
<!--日志追加类型,Date为按日期增加文件,Size为按大小-->
<rollingStyle value="Date"/>
<!--文件命名格式,非日期参数化要进行转义,如自定义文件后缀-->
<datePattern value="yyyyMM\\yyyy-MM-dd".log""/>
<!--是否固定文件名-->
<staticLogFileName value="false"/>
<!--内容布局-->
<layout type="log4net.Layout.PatternLayout">
<!--头部-->
<header value="----------------------header--------------------------
"/>
<!--结尾-->
<footer value="----------------------footer--------------------------
"/>
<!--输出格式化-->
<conversionPattern value="当前时间:%d [%p] %m %n"/>
</layout>
<!--过滤器-->
<filter type="log4net.Filter.LevelRangeFilter">
<!--只接受最小等级与最大等级之间的日志输出,这里只接受INFO级别的输出-->
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<file value="log\\error\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM\\yyyy-MM-dd".log""/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<header value="----------------------header--------------------------
"/>
<footer value="----------------------footer--------------------------
"/>
<conversionPattern value="当前时间:%d 错误类型:[%p] 信息:%m 所在类:%F 所在行:%L %n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<!--只接受最小等级与最大等级之间的日志输出,其他的被过滤,这里接受WARN(警告),ERROR(错误),FATAL(致命)级别的输出-->
<param name="LevelMin" value="WARN"/>
<param name="LevelMax" value="FATAL"/>
</filter>
</appender>
<!--定义日志的输出媒介-->
<root>
<!--RollingFileAppender事件日志-->
<appender-ref ref="RunLog"/>
<appender-ref ref="ErrorLog"/>
</root>
</log4net>
在项目中可以用以下方式使用log4net
最终写入的日志如下: