场景:我想用log4net输出两个log文件,一个文件输出所有的log,例如debug,info,warn,error,fatal全部输出,
另外一个log文件只输出error级别的log。
困扰了一段时间,开始还以为没有这样的功能,谁知是可以的。
其他地方省略了,重点看红色标出部分
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorRollingFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />-->
<conversionPattern value="%date [%thread] %-5level [%rms used] - %message%newline" />
</layout>
</appender>
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR">
<file value="c:\errorlog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1024KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
</log4net>
一定要注意,这个配置文件不能放在xml里面,一定要放在.config文件里面才能有效果