私は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