程序用的是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".log""/>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>
后来试了一下,发后面的日志打印成功。
log4net 日志打印不全
原文地址:https://www.cnblogs.com/Johar/p/9245351.html