Log 4 JはどのようにLogger出力を分けます
詳細
今日2人の同僚とLog 4 jについて議論して、彼らはすべて1つの問題を解決しなければならなくて、どのように分けてLoggerを出力します.はっきり言えませんが、例を挙げてみましょう.
barが1つの場所に出力され、他のloggerが1つの場所に出力されることを望んでいます.一般的なプロファイルは次のとおりです.
これにより、myLogの出力がファイルにあり、端末にあるという問題が発見されます.理由はLog 4 J公式のIntroductionで明らかにされています.
http://logging.apache.org/log4j/1.2/manual.htmlAppender Additivityの検索デフォルトではbarがrootの出力を統合すると説明します.原因が分かったら、どうやって修正すれば簡単ですか.
唯一の違いはbarのロゴの後ろにadditivity=「false」が付いていることです.やってみましたが、要求通りに仕事ができます.これはxmlの構成です.一般的なpropertyの構成は次のとおりです.
今日2人の同僚とLog 4 jについて議論して、彼らはすべて1つの問題を解決しなければならなくて、どのように分けてLoggerを出力します.はっきり言えませんが、例を挙げてみましょう.
package com.gmail.at.ankyhe.log4jtest;
import org.apache.log4j.Logger;
public class ClassA {
private static Logger logger = Logger.getLogger(ClassA.class.getName());
public ClassA() {
logger.info("ENTER ClassA()");
}
public void foo() {
logger.info("foo()");
bar();
}
public void bar() {
Logger myLog = Logger.getLogger("bar");
myLog.debug("bar()D");
myLog.info("bar()I");
}
}
barが1つの場所に出力され、他のloggerが1つの場所に出力されることを望んでいます.一般的なプロファイルは次のとおりです.
これにより、myLogの出力がファイルにあり、端末にあるという問題が発見されます.理由はLog 4 J公式のIntroductionで明らかにされています.
http://logging.apache.org/log4j/1.2/manual.htmlAppender Additivityの検索デフォルトではbarがrootの出力を統合すると説明します.原因が分かったら、どうやって修正すれば簡単ですか.
唯一の違いはbarのロゴの後ろにadditivity=「false」が付いていることです.やってみましたが、要求通りに仕事ができます.これはxmlの構成です.一般的なpropertyの構成は次のとおりです.
log4j.rootLogger=DEBUG, FA
log4j.category.bar = INFO, CA
log4j.additivity.bar = false
#Console Appender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=property.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n