1.准备工具
log4net.dll,log4net.xml,log4net.config
2.在项目里的AssembleInfo.cs文件的最后一行加入
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]
3.修改log4net.config配置文件
根目录如下:
<root>
<level value="ALL" />
<appender-ref ref="log1" />
<appender-ref ref="log2" />
<appender-ref ref="logsmtp" />
</root>
level选择all则所有情况都记录(debug,warn,error,info),而在每一个appender里又可以单独建立一个文件进行打印。
如上面的root中有3个子节点,则对应三个子配置
如log1,
</appender>
<appender name="StatisticsLog" type="log4net.Appender.RollingFileAppender">
<!--日志的路径-->
<file value="Log/StatisticsLog.log" />
<!--是否覆盖,默认是追加true-->
<appendToFile value="true" />
<!--按照文件的大小进行变换日志文件-->
<rollingStyle value="Size" />
<!--按照日期变换文件名称
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HHmm'.log'" />
-->
<!--设置无限备份=-1 ,最大备份数为1000-->
<maxSizeRollBackups value="10" />
<!--每个文件的最大3M-->
<maximumFileSize value="1MB" />
<!--日志文件名是否为静态-->
<staticLogFileName value="false" />
<!--输出文件格式-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d/%m%n" />
</layout>
<!--Log4net 多线程写入-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--过滤-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
以上配置会将所有debug的情况录入<file value="Log/StatisticsLog.log" />文件
4.调用代码如下
private readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);