【问题标题】:log4j appender.setAppend for rollingFileAppender not working?rollingFileAppender 的 log4j appender.setAppend 不起作用?
【发布时间】:2014-04-16 14:03:32
【问题描述】:

我正在以编程方式配置 log4j 附加程序以在运行时创建不同的文件。我能够创建文件,并且我希望它们在每次运行时重新开始。

    String logfile = ("/home/Dev/" + hostname + id);
    Logger logger =Logger.getLogger(testImpl.class);
    RollingFileAppender fileAppender=null;
    logger.setLevel(Level.DEBUG);
    PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n");
        try
        {
            fileAppender = new RollingFileAppender(layout, logfile);
            logger.addAppender(fileAppender);
            fileAppender.setAppend(false);
            logger.setAdditivity(false);
        }
        catch (IOException e)
        {
            System.out.println("Failed to add appender !!");
        }
        logger.error("Message Number :"+i);
        LogManager.resetConfiguration();

即使我设置了

    fileAppender.setAppend(false);

我无法重新启动日志文件。

【问题讨论】:

    标签: java log4j appender


    【解决方案1】:

    我遇到了同样的问题。 如果调用此构造函数,RollingFileAppender 和 FileAppender 都不起作用,该构造函数使用附加默认值(true)打开输出流。我认为如果不重新打开流,稍后 setAppend(false) 将无法工作。

    最后我用构造函数解决了:

    fileAppender = new RollingFileAppender(layout, logfile, false);
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2011-07-04
      • 2023-03-26
      相关资源
      最近更新 更多