java - 用于rollingFileAppender 的log4jappender.setAppend 不起作用?

标签 java log4j appender

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

祝你好运!

关于java - 用于rollingFileAppender 的log4jappender.setAppend 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351491/

相关文章:

java - 无法使用 Apache POI 在 MS Word 中应用表格样式

java - 登录spring核心应用程序?

java - Spring JDBC 调试日志未显示在控制台上

java - 如何使用 Log4J 将日志记录输出专门定向到不同的记录器

java - Logback - 布局模式中的自定义级别输入

java - 如何在 Android 应用程序中显示图像

java - 模拟系统类以获取系统属性

java - 使用 SSH 从 Java 应用程序连接到 Hadoop

java - 无法将自定义转换器添加到 log4j

mysql - Logback DBAppender 不记录日志