java logger单文件多类

标签 java logging filehandler

我有三个类(class),我想将日志添加到共享的单个文件中。 所以每个类的构造函数都有一个

        fh = new FileHandler("log.txt", true);
        LOGGER_A.addHandler(fh);
        SimpleFormatter formatter = new SimpleFormatter();  
        fh.setFormatter(formatter); 
    }
    catch (IOException ex) {
    }

     fh = new FileHandler("log.txt", true);
        LOGGER_B.addHandler(fh);
        SimpleFormatter formatter = new SimpleFormatter();  
        fh.setFormatter(formatter); 
    }
    catch (IOException ex) {
    }

当我运行第二个构造函数时,它会创建一个名为“log.txt.1”的新文件。 如何避免这种情况,我想为所有类使用 log.txt 文件。

最佳答案

将相同的 FileHandler 对象添加到您的两个记录器。

FileHandler 将尝试锁定文件名,这样其他 FileHandler 就不能使用同一个文件。如果 FileHandler 无法获得锁,它会在文件名末尾追加递增的数字,直到获得文件的唯一锁。由于您的第一个 FileHandler 已经锁定了 log.txt,因此第二个 FileHandler 无法获得相同的锁定。

关于java logger单文件多类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267257/

相关文章:

java - 尝试从 Axis2 生成的代码创建 jar

java - 尝试引用另一种方法时出现一些错误

sql - Microsoft LogParser : How to use parameters in a file

tomcat 6 - 更新 catalina.out 文件位置

javascript - 将大小和名称传递给 JavaScript 的 FileHandler 的 .onload 事件

java - Spring Bean 属性上的 JSR-303 注解

Java - 一个简单的(对除了我之外的每个人)方法 - 继承

java - 将特定函数调用记录到特定日志

java 打开的文件未清理,即使进程被终止

java - FileHandler.limit java 7 不工作