2012-02-29 12 views
0

私はこの設定を使用してのlog4jを使用して2つのログファイルを作成しようとしています:ロギングは(log4jのを使用して)、ログを複製している

log4j.rootLogger=debug,stdout,logfile 
#debug info warn error fatal 

# Set the enterprise logger category to FATAL and its only appender to CONSOLE. 
log4j.logger.org.apache=FATAL,logfile 

# ConsoleAppender properties 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.Threshold=debug 
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 
#%-5p [%t]: %m%n 

# LogFileAppender properties 
log4j.appender.logfile=com.xx.util.SizeRollingFileAppender 
log4j.appender.logfile.File=log.log 
log4j.appender.logfile.MaxFileSize=50240KB 
log4j.appender.logfile.BackupsDirectory=log 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 
log4j.appedner.logfile.Threshold=error 


# Log1FileAppender properties 
log4j.appender.log1=com.xx.util.SizeRollingFileAppender 
log4j.appender.log1.File=log1.log 
log4j.appender.log1.MaxFileSize=5120KB 
log4j.appender.log1.BackupsDirectory=log 
log4j.appender.log1.layout=org.apache.log4j.PatternLayout 
log4j.appender.log1.layout.ConversionPattern=%d %5p %c{1} :%L - %m%n 

(xxは私はプロジェクトのためにあります)に取り組んで -

そして、ここではそれがJavaコードです:

public class TestLog4j { 

/** 
* @param args 
*/ 
private static org.apache.log4j.Logger log    = org.apache.log4j.Logger.getLogger(TestLog4j.class); 
private static org.apache.log4j.Logger log1= org.apache.log4j.Logger.getLogger("log1"); 

public static void main(String[] args) { 

    // TODO Auto-generated method stub 
    org.apache.log4j.PropertyConfigurator.configure("src/com/test/log4j.properties"); 
    log.error("Error Test Log"); 
    log1.info("Test Log1"); 
} 

} 

私の問題は、私は2つの異なるファイル、ログ用とLOG1のための1つを書きたいということです。私がこのコードで得ているのは、同じファイル内の両方のログを使って作成されたファイルの1つだけです。

私は間違っていますか?

+0

達成したいことを明確にすることはできますか?だから、どのログファイルにどこからメッセージをログするか ポイントは: "log1"のロガーをインスタンス化していますが、その名前で定義されたロガーはありません! rootLoggerと "org.apache"という名前のロガーがありますが、 "log1"はありません。 – quaylar

答えて

0

短い答え:

追加:あなたのlog4j.propertiesに

log4j.logger.log1=<yourLogLevel>,log1 

注:すべてがLOG1にログイン要求を有効に

(ログレベル> = yourLogLevel)あなたがアペンダ加法性をオフにしない限り、両方stdoutlogfileに行こう!

関連する問題