【问题标题】:Java Log4j overwrite output of FileAppendersJava Log4j 覆盖 FileAppenders 的输出
【发布时间】:2012-08-04 07:32:03
【问题描述】:

我正在使用 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,这很好。但是当我第二次启动我的应用程序时,它会将输出添加到现有文件中。但我想覆盖日志文件。这可能吗? (我不想用 Java 删除,当然也不想手动删除)Log4J 中是否有选项告诉记录器是覆盖还是添加输出?

【问题讨论】:

    标签: java log4j logfile


    【解决方案1】:

    您需要为此使用RollingFileAppender

    在类似的行中检查以下 SO 问题:

    【讨论】:

      【解决方案2】:

      你可以使用 FileAppender,给它添加 log4j.appender.fileAppender.Append=false 属性

      【讨论】:

        猜你喜欢
        • 2013-01-25
        • 2018-05-31
        • 2014-01-16
        • 1970-01-01
        • 2016-11-19
        • 2010-10-08
        • 2020-11-19
        • 2011-08-04
        • 1970-01-01
        相关资源
        最近更新 更多