java logger 单个文件 多个 类
java logger single file multiple classes
我有三个 classes,我想将日志添加到共享的单个文件中。
所以每个 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" 的新文件。
如何避免这种情况,我想对所有 classes 使用 log.txt 文件。
我认为你在这里提出的问题实际上是一个特征。
来自https://docs.oracle.com/javase/8/docs/api/java/util/logging/FileHandler.html
For a rotating set of files, as each file reaches a given size limit, it is closed, rotated out, and a new file opened. Successively older files are named by adding "0", "1", "2", etc. into the base filename.
因此,正如我所见,您所要做的就是更改日志文件的大小限制:)
将相同的 FileHandler 对象添加到您的两个记录器。
FileHandler 将尝试锁定文件名,这样其他 FileHandler 就无法使用同一个文件。如果 FileHandler 无法获得锁,它会在文件名末尾追加递增的数字,直到获得文件的唯一锁。由于您的第一个 FileHandler 已经锁定 log.txt,第二个 FileHandler 无法获得相同的锁定。
不要忘记在 FileHandler 记录后关闭文件。
使用 FileHandler 的关闭方法 Class:
我有三个 classes,我想将日志添加到共享的单个文件中。 所以每个 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" 的新文件。 如何避免这种情况,我想对所有 classes 使用 log.txt 文件。
我认为你在这里提出的问题实际上是一个特征。
来自https://docs.oracle.com/javase/8/docs/api/java/util/logging/FileHandler.html
For a rotating set of files, as each file reaches a given size limit, it is closed, rotated out, and a new file opened. Successively older files are named by adding "0", "1", "2", etc. into the base filename.
因此,正如我所见,您所要做的就是更改日志文件的大小限制:)
将相同的 FileHandler 对象添加到您的两个记录器。
FileHandler 将尝试锁定文件名,这样其他 FileHandler 就无法使用同一个文件。如果 FileHandler 无法获得锁,它会在文件名末尾追加递增的数字,直到获得文件的唯一锁。由于您的第一个 FileHandler 已经锁定 log.txt,第二个 FileHandler 无法获得相同的锁定。
不要忘记在 FileHandler 记录后关闭文件。
使用 FileHandler 的关闭方法 Class: