2014-06-18 40 views
0

我想使用log4j日誌記錄從INFO的輸出日誌消息中刪除時間戳和類名。現在,看起來我的程序沒有使用ConversionPattern佈局行,因爲該行甚至沒有引用C,它將是擁有記錄器對象的Java類。log4j.properties - 從輸出中刪除類名

log4j.properties加載這樣的:

URL logConfigUrl = ClassLoader.getSystemResource("log4j.properties"); 
PropertyConfigurator.configure(logConfigUrl); 

這裏是我的log4j.properties文件內容:

log4j.rootLogger=INFO, stdout 
log4j.rootLogger=ERROR, stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

現在,輸出結果如下:

14:24 :17.387 [main] INFO com.nim.tools.recontool.ReconTool

我希望它看起來像這樣:

[主] INFO

+0

也許* log4j.properties *文件不正確。我會首先嚐試調整一些參數,如日誌級別,看看它是否有任何作用。 – proskor

+0

我很確定它的加載是否正確,但我會檢查 –

+0

它是這樣加載的,所以我懷疑它可能會被不正確的加載,否則會引發錯誤\t URL logConfigUrl = ClassLoader.getSystemResource(「log4j.properties」); \t \t PropertyConfigurator.configure(logConfigUrl); –

回答

2

我相信文件加載錯誤「log4j.properties」,作爲輸出甚至不匹配您的配置。

URL logConfigUrl = ClassLoader.getSystemResource("log4j.properties");

加載第一個 「log4j.properties」 的類搜索路徑找到。一些包含「log4j.properties」的jar/dirs可能已經在課程之前加載。要驗證哪個log4j.properties已加載,可以打印出URL。

要配置理想的輸出,你需要:

log4j.appender.stdout.layout.ConversionPattern=[%t] %-5p: %m%n

+0

感謝這有所幫助 –