log4net 各种等级的消息 输出到不同日志文件的 配置文件方式

2024-02-05 21:18

本文主要是介绍log4net 各种等级的消息 输出到不同日志文件的 配置文件方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是用log4net 1.2.9.0环境下 将不同等级消息输出到不同日志文件的配置文件,log4net.config
在项目中增加引用,在AssemblyInfo.cs里增加一句话:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Application_OnStart-WebForm或者在 main函数-WinForm里面增加
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
<?xml version="1.0" encoding="utf-8"?>
<log4net>
 <!--
    ALL/FATAL > ERROR > WARN > INFO > DEBUG/OFF
<logger name="PenavicoxmLogger">
  <level value="ALL" />
  <appender-ref ref="LogFileAppender" />
 </logger>
 <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  <param name="File" value="Penavicoxm.log.txt" />
  <param name="RollingStyle" value="Date" />
  <param name="datePattern" value="MM-dd HH:mm" />
  <param name="AppendToFile" value="true" />
  <layout type="log4net.Layout.PatternLayout">
   <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
 </appender>
 <root>
  <level value="ALL" />
  <appender-ref ref="DebugLog" />
 </root>-->
 <root>
  <level value="ALL" />
  <appender-ref ref="DebugLog" />
  <appender-ref ref="InfoLog" />
  <appender-ref ref="WarnLog" />
  <appender-ref ref="ErrorLog" />
  <appender-ref ref="FatalLog" />
 </root>
 <!--
 <root>
  <level value="DEBUG" />
  <appender-ref ref="DebugLog" />
 </root>
 <root>
  <level value="FATAL" />
  <appender-ref ref="FatalLog" />
 </root>
 <root>
  <level value="WARN" />
  <appender-ref ref="WarnLog" />
 </root>
 <root>
  <level value="ERROR" />
  <appender-ref ref="ErrorLog" />
 </root>-->
 <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
  <file value="log/" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyy//MM//dd-In/fo'.txt'" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d [%t] %-5p %c %L - %m%n" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
   <param name="LevelMin" value="INFO" />
   <param name="LevelMax" value="INFO" />
  </filter>
</appender>
 <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
  <file value="log/" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyy//MM//dd-Debu/g'.txt'" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d [%t] %-5p %c %L - %m%n" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
   <param name="LevelMin" value="DEBUG" />
   <param name="LevelMax" value="DEBUG" />
  </filter>
 </appender>
 <appender name="FatalLog" type="log4net.Appender.RollingFileAppender">
  <file value="log/" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyy//MM//dd-/Fa/tal'.txt'" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d [%t] %-5p %c %L - %m%n" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
   <param name="LevelMin" value="FATAL" />
   <param name="LevelMax" value="FATAL" />
  </filter>
 </appender>
 <appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
  <file value="log/" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyy//MM//dd-Warn'.txt'" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d [%t] %-5p %c %L - %m%n" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
   <param name="LevelMin" value="WARN" />
   <param name="LevelMax" value="WARN" />
  </filter>
 </appender>
 <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
  <file value="log/" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <datePattern value="yyyy//MM//dd-Error'.txt'" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%d [%t] %-5p %c %L - %m%n" />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
   <param name="LevelMin" value="ERROR" />
   <param name="LevelMax" value="ERROR" />
  </filter>
 </appender>
</log4net>
刚用log4net,也许配置比较累赘,主要使用filter的, 高手指点一下,有没有简洁的方式配置

这篇关于log4net 各种等级的消息 输出到不同日志文件的 配置文件方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/682195

相关文章

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映