1

アプリケーションのログ出力に Log4j を使用しています。log4j.properties ファイルの内容は次のとおりです。

    log4j.logger.DEFAULT_LOGGER=INFO,main_log, stdout
    log4j.additivity.DEFAULT_LOGGER = false

    # Direct log messages to a log file
    log4j.appender.main_log=org.apache.log4j.FileAppender
    log4j.appender.main_log.File=mainLog.log
    log4j.appender.main_log.layout=org.apache.log4j.PatternLayout
    log4j.appender.main_log.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n

    # Direct log messages to stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n

現在、次のことが起こっています。私が呼び出すメインメソッドを開始するとき

static Logger log = Logger.getLogger("DEFAULT_LOGGER");
log.fatal("Process Logger");

出力を stdout と file.log に出力しますが、これで問題ありません。しかし、アプリケーションを 2 回目に起動すると、既存のファイルに出力が追加されます。しかし、ログファイルを上書きしたい。これは可能ですか?(削除にJavaを使用したくない、もちろん手動で削除したくない) Log4Jには、ロガーに出力を上書きまたは追加するように指示するオプションがありますか?

4

2 に答える 2

1

FileAppender を使用して、 log4j.appender.fileAppender.Append=false プロパティを追加できます

于 2012-08-07T10:11:13.773 に答える
1

これにはRollingFileAppenderを使用する必要があります。

同様の行で次の SO の質問を確認してください。

于 2012-08-07T09:55:57.593 に答える