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

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri