随笔 - 88, 文章 - 14, 评论 - 17, 阅读 - 94153
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

log4net 将日志按不同类型写入多个文件

Posted on   周末  阅读(3300)  评论(0编辑  收藏  举报

<log4net>
   
<root>
     
<!--
           
<level value="ALL" />
           
<appender-ref ref="rootFile" />
           
-->
   
</root>
   
<logger name="Livan's Logger">
     
<level value="ALL" />
     
<appender-ref ref="Loging" />
     
<appender-ref ref="EventLoging"/>
     
<appender-ref ref="ErrorLoging" />
   
</logger>
   
<!--信息日志-->
   
<appender name="Loging" type="log4net.Appender.RollingFileAppender,log4net" >
     
<param name="File" value="Log\log.txt" />
     
<param name="AppendToFile" value="true" />
     
<param name="RollingStyle" value="Date" />
     
<param name="DatePattern" value="yyyyMMdd" />
     
<param name="StaticLogFileName" value="true" />
     
<layout type="log4net.Layout.PatternLayout,log4net">
       
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"  />
       
<param name="Header" value="&#13;&#10;" />
     
</layout>
     
<filter type="log4net.Filter.LevelRangeFilter">
       
<param name="LevelMin" value="INFO" />
       
<param name="LevelMax" value="INFO" />
     
</filter>
   
</appender>
   
<!--警告,注意,通知日志-->
   
<appender name="EventLoging" type="log4net.Appender.RollingFileAppender,log4net" >
     
<param name="File" value="Log\log_event.txt" />
     
<param name="AppendToFile" value="true" />
     
<param name="RollingStyle" value="Date" />
     
<param name="DatePattern" value="yyyyMMdd" />
     
<param name="StaticLogFileName" value="true" />
     
<layout type="log4net.Layout.PatternLayout,log4net">
       
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
       
<param name="Header" value="&#13;&#10;[Header]&#13;&#10;" />
       
<param name="Footer" value="[Footer]&#13;&#10;" />
     
</layout>
     
<filter type="log4net.Filter.LevelRangeFilter">
       
<param name="LevelMin" value="WARN" />
       
<param name="LevelMax" value="WARN" />
     
</filter>
   
</appender>
   
<!--错误日志-->
   
<appender name="ErrorLoging" type="log4net.Appender.RollingFileAppender,log4net" >
     
<param name="File" value="Log\log_error.txt" />
     
<param name="AppendToFile" value="true" />
     
<param name="RollingStyle" value="Date" />
     
<param name="DatePattern" value="yyyyMMdd" />
     
<param name="StaticLogFileName" value="true" />
     
<layout type="log4net.Layout.PatternLayout,log4net">
       
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
       
<param name="Header" value="&#13;&#10;[Header]&#13;&#10;" />
       
<param name="Footer" value="[Footer]&#13;&#10;" />
     
</layout>
     
<filter type="log4net.Filter.LevelRangeFilter">
       
<param name="LevelMin" value="ERROR" />
       
<param name="LevelMax" value="ERROR" />
     
</filter>
   
</appender>
 
</log4net>

调用方法:

log4net.ILog log = log4net.LogManager.GetLogger("Livan's Logger");
log.Info(message);
log.Warn(message);
...

 

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示