簡體   English   中英

Log4j在消息之前沒有打印名稱

[英]Log4j not printing name before message

我有一個log4j記錄器,我實例化如下:

logger = Logger.getLogger("EQUIP(" + id + ")");

這樣做,當我調用logger.info("message") ,我應該得到這樣的輸出(帶有一些日期格式):

13/11/12 15:08:27 INFO: EQUIP(1): message

但我只是得到:

13/11/12 15:08:27 INFO: message

我也將logger.getName()打印到控制台進行調試,它給了我正確的“EQUIP(1)”名稱。 在某些情況下,我的程序中會出現這種情況,我有幾個這樣的記錄器,但主要是在這個特定的類中。 我想知道我做錯了什么,如果這個名字應該只是類/包名,或者它可以是什么(它在80%以上的記錄器中運行良好)。 我需要打印每個設備的ID,因為我有幾個同時工作,並且在沒有這個的情況下跟蹤它們幾乎是不可能的。

我應該如何解決這個問題,最好不要將資源更改為更改所有日志調用以包含此前綴?

輸出格式取決於您為appender配置的模式。 如果模式字符串包含%c那么您將獲得包含的記錄器名稱,如果不包含,則不會。

另一種方法可能是使用映射的診斷上下文 ,該上下文旨在消除寫入同一記錄器的不同線程的日志輸出之間的歧義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM