2017-02-16 62 views
0

我想在log4j轉換模式中使用一個log4j變量。可能嗎?我嘗試過所有log4j提供的圖案,但無法打印。就像它有調用類的%C一樣,這有什麼用?作爲一個例子..如何在轉換模式中使用log4j變量

log4j.rootLogger=TRACE, file, stdout 
log4j.name=TestClass 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.MaxFileSize=10MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p <how to give "log4j.name" variable here?>:%L - %m%n 

我想在轉換模式中<>區域使用TestClass。任何方式來做到這一點?我試着給$name/${log4j.name]但沒有任何工作。請幫忙。

+0

如果您要打印log4j正在記錄的類名稱,您可以使用%F,它將顯示類名稱。 – SachinSarawgi

回答

0

你必須有這種可能性。

可以使用

  • MDC - 映射診斷上下文
  • NDC - 嵌套診斷上下文

你的目的,你應該開始枝條的MDC,在它把測試名稱(例如test)並添加%X{test}到ypur日誌模式

假設您使用JUnit:將測試名稱添加到MDC中,您可以在@Before方法中執行

相關問題