我通过编程方式配置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);


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

最佳答案

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

最后,我用构造函数来解决:

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


祝好运!

10-04 14:03