私はlog4jを使ってテキストファイルにログオンするアプリケーションを持っていますが、デフォルトのログ設定パラメータを含む実行可能なjarファイル内にlog4j.propertiesファイルを置いています。実行時にlog4jプロパティファイルを変更すると、空のデフォルトログが作成されます
私のlog4j.propertiesファイルは、次のようになります。
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.File=mylogfile.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n
私のアプリケーションは、ユーザーがログファイル名を変更できるようにするコマンドラインオプションを持っているので、私は、次のその変化のような機能を持っています実行時にlog4jのの設定:
public void changeLogFileName(String filename) {
props.setProperty("log4j.appender.A1","org.apache.log4j.DailyRollingFileAppender");
props.setProperty("log4j.appender.A1.DatePattern","'-'ddMMyyyy");
props.setProperty("log4j.appender.A1.File",filename);
LogManager.resetConfiguration();
PropertyConfigurator.configure(props);
}
すべてが正常に動作し、場合を除きときの文LogManager.resetConfiguration()および/またはPropertyConfigurator.configure(props)が実行され、デフォルトの空のログファイル(mylogfile.log)が自動的に作成されます。 その後、私のアプリケーションからログしたものはすべて新しいファイルに正しく書き込まれますが、とにかく(log4j.propertiesのデフォルトのログファイル名の名前で)空のファイルが作成されます。
空のデフォルトログファイルの作成を回避する手段はありますか?