2016-08-06 16 views
0

Javaでログファイル名を動的に設定したいのですが、私はログファイル名をプログラムで設定できるように再構成しようとしています。変数。Log4jの設定をファイルからコード内の設定に変換する

私はlog4jに特定のパッケージをログに記録する方法につきまして、infoレベルにログオンしています。

FileAppender fa = new FileAppender(); 
     fa.setName("FileLogger"); 
     fa.setFile("mylog"+args+".log"); 
     fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n")); 
     fa.setThreshold(Level.WARN); 
     fa.setAppend(false); 
     fa.activateOptions(); 

     //add appender to any Logger (here is root) 
     Logger.getRootLogger().addAppender(fa); 
     Logger.getLogger("a.b.c.d").setLevel(Level.INFO); 

私はwarn何にFileAppenderを設定した場合、私はinfoに設定した場合に記録され、それは次のとおりです。

log4j.rootLogger = warn, FILE 

log4j.appender.FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.FILE.File=log.txt 
log4j.appender.FILE.Append=false 
log4j.appender.FILE.MaxFileSize=99999999KB 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.ConversionPattern=%m - %5p %d{HH:mm:ss,SSS} [%t] (%F:%L)%n 

log4j.logger.a.b.c.d=info 

は、私がこれまで持っていることはこれです:

は私の log4j.propertiesは、このように見えました本質的にすべて。私の最後のコード行は効果がないようです。誰でも何が欠けているのか?

+0

plsはlog4jバージョンを共有しています。私はローカルで複製しようとしています –

+0

私はlog4j 1.2.17を使用しています – toobee

答えて

0

appenderからtestとsetThresholdを削除してテストしてください。それは私のために働いた。

のJavadoc

から

ます。public void setThreshold(優先しきい値) は、しきい値レベルを設定します。しきい値レベルより低いレベルのログ・イベントはすべて、アペンダーによって無視されます。 設定ファイルでは、このオプションは、[しきい値]オプションの値を "DEBUG"、 "INFO"などのレベル文字列に設定することで指定します。

関連する問題