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".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>
后来试了一下,发后面的日志打印成功。