热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Log4net按照不同级别写入多个日志文件

1[assembly:log4net.Config.XmlConfigurator(Watchtrue)]注入2在一个Web应用项目中,我使用了FluentNHibernat
 1 [assembly: log4net.Config.XmlConfigurator(Watch = true)]//注入
2 在一个Web应用项目中,我使用了Fluent NHibernate作为数据访问组件,Log4net来做日志记录。实际编码中,主要使用了INFO和ERROR这两个等级来记录日志,如果按照以下Log4net配置:
3 "ALL"/>ref ref="RollingFile"/>ref ref="RollingFileTracer"/>
4
5 log4net会把INFO和ERROR的日志记录到同一个日志文件里,Fluent NHibernate的INFO日志会大量存在于该日志文件中,这样一来对日后分析错误日志带来非常之不便,所以就想能不能单独把ERROR级的错误日志记录到一个特定的日志文件里。
6 于是开始尝试各种配置来实现这个需要,标签不支持多个,也就没法通过在中配置多个不同级别的日志输入,通过查阅Log4net文档,找到了这个标记,配置如下:
7
8
"log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
9
10 我们可以看到“RollingFileTracer”中我们通过Filter过滤,只记录范围为ERROR到FATAL,然后在增加该appender,level设置为“ALL”记录所有级别的日志。好了,配置完成,程序实现了记录不同等级的错误信息到多个日志文件。
11
12 ----------------------------------事例--------------
13 [assembly: log4net.Config.XmlConfigurator(Watch = true)]//注入
14
"log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
15
16
17
18
19 "RollingFile" type="log4net.Appender.RollingFileAppender">
20 "Log/Info/" />
21 "true" />
22
23 "5MB" />
24
25 "-1" />
26 "yyyyMMdd".htm"" />
27
28 "Composite" />
29 "false" />
30 "log4net.Layout.PatternLayout">
31 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
32

33 "log4net.Filter.LevelRangeFilter">
34 "INFO" />
35 "INFO" />
36

37

38
39
40 "RollingWarnFile" type="log4net.Appender.RollingFileAppender">
41 "Log/Warn/" />
42 "true" />
43
44 "5MB" />
45
46 "-1" />
47 "yyyyMMdd".htm"" />
48
49 "Composite" />
50 "false" />
51 "log4net.Layout.PatternLayout">
52 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
53

54 "log4net.Filter.LevelRangeFilter">
55 "WARN" />
56 "WARN" />
57

58

59
60
61 "RollingFileTracer" type="log4net.Appender.RollingFileAppender">
62 "Log/Error/" />
63 "true" />
64 "10MB" />
65 "-1" />
66 "yyyyMMdd".htm"" />
67 "Composite" />
68 "false" />
69 "log4net.Layout.PatternLayout">
70 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
71

72 "log4net.Filter.LevelRangeFilter">
73 "ERROR" />
74 "FATAL" />
75

76

77
78 "ALL" />
79 ref ref="RollingFile" />
80 ref ref="RollingWarnFile" />
81 ref ref="RollingFileTracer" />
82

83

84
85 -----------------------------------------------
86 "logerror">"ALL"/>ref ref="ErrorAppender"/>"loginfo">"ALL"/>ref ref="InfoAppender"/>"ErrorAppender" type="log4net.Appender.RollingFileAppender">"File" value="Log\\LogError\\"/>"AppendToFile" value="true"/>"MaxSizeRollBackups" value="100"/>"MaxFileSize" value="10240"/>"StaticLogFileName" value="false"/>"DatePattern" value="yyyyMMdd".htm""/>"RollingStyle" value="Date"/>"log4net.Layout.PatternLayout">"ConversionPattern" value="
%n异常时间:%d [%t]
%n异常级别:%-5p
%n异 常 类:%c [%x]
%n%m
%n
"/>
"InfoAppender" type="log4net.Appender.RollingFileAppender">"File" value="Log\\LogInfo\\"/>"AppendToFile" value="true"/>"MaxFileSize" value="10240"/>"MaxSizeRollBackups" value="100"/>"StaticLogFileName" value="false"/>"DatePattern" value="yyyyMMdd".htm""/>"RollingStyle" value="Date"/>"log4net.Layout.PatternLayout">"ConversionPattern" value="
%n日志时间:%d [%t]
%n日志级别:%-5p
%n日 志 类:%c [%x]
%n%m
%n
"/>

87
88 "ALL"/>
89 ref ref="RollingFile"/>
90 ref ref="RollingFileTracer"/>
91

 


推荐阅读
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
author-avatar
EEeeen_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有