我对log4j很陌生。我想显示包含以下信息的日志消息:日志时间戳、优先级、完全限定的类名、消息、仅类名。我尝试显示两次类别,一次使用转换模式,一次使用其他转换模式。这是我的log4j.properties的一部分:
log4j.appender.JDBC2.layoutPartsDelimiter=#-#
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n
可悲的是它不起作用。如何仅在同一日志消息中显示完全限定的类名和类名?蒂亚。
弗朗切斯科
-
log4j.appender.B1.layout.ConversionPattern 是这里的一个键,你可以仅将其与一个值关联。所以,如果你这样写:
The later value would just override the previous oneLog4j.appender.B1.layout.ConversionPattern=%some%value%here Log4j.appender.B1.layout.ConversionPattern=%another%value%here
You can define two different appenders and associate them with the logger you want(the rootLogger as an example):
log4j.rootLogger=debug,console,console2 log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.err log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern= %p %C (%F:%M(%L)) - %m%n log4j.appender.console2=org.apache.log4j.ConsoleAppender log4j.appender.console2.target=System.err log4j.appender.console2.layout=org.apache.log4j.PatternLayout log4j.appender.console2.layout.ConversionPattern= %p %c{1} (%F:%M(%L)) - %m%n
注意:两个附加器之间的唯一区别是追加程序的名称和转换模式属性。
- 可以找到有关 log4j 的更详细讨论 log4j 的简短介绍
这是我的错误。正如你在我的先例文章中看到的,Delimiter 和 PatternLayout 指的是不同的追加器。我改变
log4j.appender.JDBC2.layoutPartsDelimiter=#-#
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n
进入这个:
log4j.appender.B1.layoutPartsDelimiter=#-#
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n
一切正常,当我使用 @LAYOUT:1@ 时,我得到了第一个转换模式(分隔符 #-# 的左侧)。当我使用 @LAYOUT:2@ 时,我得到了第二种模式。谢谢。
弗朗切斯科