2017-02-16 57 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方法中执行

相关问题