0

私はslf4jを使用しているJavaプログラムに取り組んでいます。現在、プログラムには次の行が含まれています。

 class MyOwn{
    Logger logger; //org.slf4j.*;
    static {
    PropertyConfigurator.configure("somePathTo/log4j.properties");//log4j
    logger = LoggerFactory.getLogger(MyOwn.class);
}

     ... // rest of my code is here
 }

私の質問は次のとおりです。実行時に logFile の名前を指定できるようにするには、どのような変更を行う必要がありますか。

背景: 基本的に、プログラムの実行中は、xいくつかのジョブを順番に実行することになっています。ジョブごとに、異なるファイル名が必要です。

log4j.properties ファイルは xml ではありません。それはテキストであり、そのままにしておく必要があります。このリンク ( http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html ) を見つけましたが、そこにある情報の使用方法がわかりません。

編集

以下は、現在の log4j.properties ファイルです。ファイル ディレクトリを log4j.properties ファイル (つまり ) に設定したままにして、動的なファイル名/opt/stuff/var/log/jmy/proj/に置き換えるだけにしたいと考えています。myown.logどうすればいいですか?繰り返しますが、log4j.properties を保持したいと思います。

 log4j.appender.CONSOLE=org.apache.     log4j.ConsoleAppender
 log4j.appender.CONSOLE.layout=org.apache.     log4j.PatternLayout
 log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c{1} - %m%n

 log4j.rootLogger=INFO, CONSOLE

 log4j.appender.MY_OWN_ERR_LOG=org.apache.     log4j.RollingFileAppender
 log4j.appender.MY_OWN_ERR_LOG.File=/opt/stuff/var/log/jmy/proj/myown.error.log
 log4j.appender.MY_OWN_ERR_LOG.MaxFileSize=4MB
 log4j.appender.MY_OWN_ERR_LOG.MaxBackupIndex=3
 log4j.appender.MY_OWN_ERR_LOG.layout=org.apache.     log4j.PatternLayout
 log4j.appender.MY_OWN_ERR_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n
 log4j.appender.MY_OWN_ERR_LOG.Threshold = WARN

 log4j.appender.MY_OWN_LOG=org.apache.     log4j.RollingFileAppender
 log4j.appender.MY_OWN_LOG.File=/opt/stuff/var/log/jmy/proj/myown.log
 log4j.appender.MY_OWN_LOG.MaxFileSize=8MB
 log4j.appender.MY_OWN_LOG.MaxBackupIndex=3
 log4j.appender.MY_OWN_LOG.layout=org.apache.     log4j.PatternLayout
 log4j.appender.MY_OWN_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n

 log4j.logger.my.own.things=DEBUG, MY_OWN_LOG, MY_OWN_ERR_LOG
4

1 に答える 1

0

この投稿を見てくださいlog4jを使用してプログラムで異なるログファイルを作成する

プログラムで log4j.properties ファイルに入れることができるものは何でも指定できます。アペンダー オブジェクトとロガー オブジェクトを作成し、それらをリンクするだけです。

より完全な例については、こちらも参照してください: http://configlog4jbyprogram.blogspot.co.uk/

于 2012-08-24T20:28:54.787 に答える