1. 程式人生 > >log4net 日誌打印不全

log4net 日誌打印不全

mode 可能 mmd out att ets err dto version

程序用的是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>

後來試了一下,發後面的日誌打印成功。

log4net 日誌打印不全