log4net按照不同的【LEVEL】级别输出到不同文件

场景:我想用log4net输出两个log文件,一个文件输出所有的log,例如debug,info,warn,error,fatal全部输出,
另外一个log文件只输出error级别的log。
困扰了一段时间,开始还以为没有这样的功能,仔细看log4.net的文档发现是可以的。

其他地方省略了,重点看红色标出部分。这样的话同一个地方写入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 [%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>
posted @ 2008-10-09 11:46  mahua  阅读(2887)  评论(0编辑  收藏  举报