log4net 日志打印不全

程序用的是log4net打印日志,偶现日志打印不全的问题,程序的log4net配置如下:

 1 <log4net>
 2     <root>
 3       <level value="ALL"/>
 4       <appender-ref ref="RollingLogFileAppender"/>
 5       <appender-ref ref="ConsoleAppender"/>
 6     </root>
 7     <!--日志记录器logger,可以有多个-->
 8     <logger name="fileLog">
 9       <level value="ALL"/>
10       <appender-ref ref="ConsoleAppender"/>
11       <appender-ref ref="RollingLogFileAppender"/>
12     </logger>
13     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
14       <layout type="log4net.Layout.PatternLayout">
15         <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]- %m%n"/>
16       </layout>
17     </appender>
18     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
19       <param name="File" value="logs/PekingVMS"/>
20       <param name="AppendToFile" value="true"/>
21       <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
22       <param name="MaxSizeRollBackups" value="-1"/>
23       <param name="Encoding" value="utf-8" />
24       <!-- 每个文件的大小限制  -->
25       <param name="MaximumFileSize" value="100MB"/>
26       <param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock"/>
27       <param name="StaticLogFileName" value="false"/>
28       <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;"/>
29       <param name="RollingStyle" value="Composite"/>
30       <layout type="log4net.Layout.PatternLayout">
31         <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]- %m%n"/>
32       </layout>
33     </appender>
34   </log4net>

PatternLayout 相关配置信息如下所示:

-X号: X信息输出时左对齐;

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

%r: 输出自应用启动到输出该log信息耗费的毫秒数

%c: 输出日志信息所属的类目,通常就是所在类的全名

%t: 输出产生该日志事件的线程名

%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)

%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%%: 输出一个"%"字符

%F: 输出日志消息产生时所在的文件名称

%L: 输出代码中的行号

%m: 输出代码中指定的消息,产生的日志具体信息

%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行

日志只打印了时间,现场id,优先级,类名,后面就没有了,猜测可能是%x获取不到,导致后面的日志内容没有打印,所以改为:

1 <layout type="log4net.Layout.PatternLayout">
2         <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
3       </layout>

后来试了一下,发后面的日志打印成功。

原文地址:https://www.cnblogs.com/Johar/p/9245351.html

时间: 2024-10-13 22:53:33

log4net 日志打印不全的相关文章

Log4Net 日志配置

前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减 少查阅资料的时间.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库,并且我们还可以记载控制要记载的日志级 别,可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). log4net 有四种主要的组件,分别是Logger(记录器), Re

C#中使用Log4net日志输出到本地文件、Textbox或Listview

网上很多配置log4net的方法,但是排行靠前的 根本就没有说明清除,导致浪费了两个小时来搞清楚如何配置,真是无语,特写此文,给那些刚接触log4net的朋友 1.参考链接:http://blog.sina.com.cn/s/blog_642e41c201014pml.html 此方法是直接将配置文件配置在app.config <configSections> <!--在配置选项中加入log4net的引用--> <section name="log4net"

Log4net 日志

Log4net 日志使用介绍 概述 Log4net 有三个主要组件:loggers,appenders 和 layouts.这三个组件一起工作使得开发者能够根据信息类型和等级(Level)记录信息,以及在运行时控制信息的格式化和信息的写入位置(如控制台,文件,内存,数据库等).过滤器(filter)帮助这些组件,控制追加器(appender)的行为和把对象转换成字符串的对象渲染. 如果对log4net的基本使用并不是很清楚,可以参考我的另一遍介绍:Log4net入门使用 日志(Loggers)

C#Log4net日志记录组件的使用

一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO . DEBUG.ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误.警告之类的提示信息,它们的错误级别不断的降低. 我们接着看Log4net的核心组成部分,Log4net主要由五个部分组成,分

Log4net 日志使用介绍

概述 Log4net 有三个主要组件:loggers,appenders 和 layouts.这三个组件一起工作使得开发者能够根据信息类型和等级(Level)记录信息,以及在运行时控制信息的格式化和信息的写入位置(如控制台,文件,内存,数据库等).过滤器(filter)帮助这些组件,控制追加器(appender)的行为和把对象转换成字符串的对象渲染. 如果对log4net的基本使用并不是很清楚,可以参考我的另一遍介绍:Log4net入门使用 日志(Loggers) 日志请求是通过调用一个日志实例

Log4Net 日志配置[附带源码]

前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库,并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息).log4net 有四种主要的组件,分别是Logger(记录器), Repos

python日志打印和写入并发简易版本实现

大家一般都用logging日志打印,但logging是线程安全的,多进程也有很多介绍,引入一些文件锁,对logging做好配置,能过支持. 但通过测试,发现多进程时还是容易出现重复写入文件或者打印正常漏写入文件的问题. 我的日志需求比较简单,能够区分文件,正确的写入日志文件. 引入文件锁:日志写入函数封装到一个操作_Logger类中: 日志名称和写入级别封装到一个业务类Logger中. 本范例基于python3实现.本范例20个进程并发,分别写入3个文件,每s每个文件写入超过100行数据,日志文

项目log日志打印

①使用到的jar包: 大概是这几个,具体我也不知道是哪一个,下次使用的时候自己测试下. commons-logging-1.2.jar commons-discovery-0.5.jar log4j-1.2.17.jar ②log4j.properties log4j.rootLogger=DEBUG,CONSOLE,A log4j.addivity.org.apache=false log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4net日志插件的使用

1.安装log4net 2.引用 3.配置(web.config文件) <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!--信息日志配置--> <appender name=