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>

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

 

posted @ 2018-06-29 20:37  Johar  阅读(1343)  评论(0编辑  收藏  举报