2011-04-11 47 views
3

對於%p標誌的特定日誌消息,我將獲得調試或錯誤或警告。任何人都可以告訴我如何得到前三個字母。例如。只爲警告log4j現在顯示使用%p的日誌消息

+0

does%.3p的工作? – sbridges 2011-04-11 04:31:30

+0

是的,但它記錄了最後三個字母。例如ING警告 – user696266 2011-04-11 04:43:14

+0

默認情況下,%.3p從開始處截斷。任何人都可以告訴我如何截斷 – user696266 2011-04-11 05:08:41

回答

1

執行的子是​​org.apache.log4j.helpers.PatternConverter類,format方法的代碼WAR:

if(len > max) 
    sbuf.append(s.substring(len-max)); 

如果您想打印出來WAR,你應該繼承PatternConverter類改變串線成format方法是這樣的:

if(len > max) 
    sbuf.append(s.substring(0, max)); 

那麼你也應該寫PatternLayout#createPatternParser方法,它具有實例化的一個新版本的PatternConverter的新版本。

希望這會有所幫助。

+0

它的確如此。 :)感謝名單 – user696266 2011-04-11 10:52:15

0

在log4j的2.x中,您可以從最終截斷:從最終

截斷可能通過期之後追加一個減號 。在這種情況下,如果最大字段寬度爲 八,且數據項的長度爲十個字符,則刪除數據項的最後兩個 字符。

鏈接:https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

因此,在這種情況下,%.-3p應該給WAR而不是WARNING

相關問題