补充一下,如果需要用log4net同时记录操作日志和异常日志,并且希望把他们存储在不同的地方(文件或者数据库),可以这样处理,这里以文件为例。
首先更改配置文件
增加logger配置节,
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>根据需要可以定义多个,
设置各个log对应的级别,并补充每个appender所对应的节点
<appender name="RollingLogFileAppender"
type="log4net.Appender.RollingFileAppender">
<param name="File" value="F:\\AppLog\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".htm"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t]
<BR>%n异常级别:%-5p
<BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout>
</appender>
<appender name="InfoAppender"
type="log4net.Appender.RollingFileAppender">
<param name="File" value="F:\\App\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".htm"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=red>%n日志时间:%d [%t]
<BR>%n日志级别:%-5p
<BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout>
</appender>
在cs文件里定义多个log实例,
public static readonly log4net.ILog loginfo =
log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror =
log4net.LogManager.GetLogger("logerror");
作为操作日志和异常日志的操作对象,
根据级别,进行操作
if(loginfo.IsInfoEnabled)
loginfo.Info("新增文章成功!");
if(logerror.IsErrorEnabled)
logerror.Error("新增文章出错!",se);