我想用不同的佈局定義2個不同的log4j ConsoleAppenders。我試過以下內容:可以用2個ConsoleAppenders配置log4j,每個都有不同的佈局?
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{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.stdoutMDC=org.apache.log4j.ConsoleAppender
log4j.appender.stdoutMDC.Target=System.out
log4j.appender.stdoutMDC.layout=org.apache.log4j.PatternLayout
log4j.appender.stdoutMDC.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L (hibernateLoadPlanWalkPath->%X{hibernateLoadPlanWalkPath}) - %m%n
但是,當我嘗試使用這些appender時,我遇到了問題。我具有連接到根第一附加器,然後嘗試在第二附連到某些祖先記錄程序:
log4j.rootLogger=info, stdout
log4g.logger.org.hibernate.loader.plan=trace, stdoutMDC
log4g.additivity.org.hibernate.loader.plan=false
log4g.logger.org.hibernate.persister.walking=trace, stdoutMDC
log4g.additivity.org.hibernate.persister.walking=false
我遇到的麻煩是由這兩個祖先記錄器的消息最終會到標準輸出附加器而不是 stdoutMDC appender。我嘗試了和不禁用可加性,但沒有區別。
任何想法?
大聲笑,幫助如果你使用正確的前綴。 'log4j.logger'而不是'log4g.logger':) – 2013-03-18 14:22:38