gpt4 book ai didi

java - 如何使用 JDK Logging 手动滚动日志文件

转载 作者:行者123 更新时间:2023-11-29 03:43:22 35 4
gpt4 key购买 nike

我有一个使用 JDK 日志记录和 logging.properties 文件的应用程序,该文件通过 java.util.logging.FileHandler.count 配置了一些旧的日志文件。

在应用程序的某些点,我想触发日志文件的手动翻转以启动新的日志文件,例如在预定的 Activity 开始之前。

JDK Logging 可以做到这一点吗?

在 Log4j 中,我使用以下内容,但是在这种情况下,我想使用 JDK 日志记录!

Logger logger = Logger.getRootLogger();
Enumeration<Object> appenders = logger.getAllAppenders();
while(appenders.hasMoreElements()) {
Object obj = appenders.nextElement();
if(obj instanceof RollingFileAppender) {
((RollingFileAppender)obj).rollOver();
}
}

最佳答案

您可以通过创建一个零限制且没有追加的一次性 FileHandler 来触发轮换。

new FileHandler(pattern, 0, count, false).close();

  1. 删除并关闭现有的 FileHandler
  2. 创建并关闭旋转 FileHandler。
  3. 使用您的默认设置创建和添加您的 FileHandler。

否则你可以求助于反射:

        Method m = FileHandler.class.getDeclaredMethod("rotate");
m.setAccessible(true);
if (!Level.OFF.equals(f.getLevel())) { //Assume not closed.
m.invoke(f);
}

关于java - 如何使用 JDK Logging 手动滚动日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158507/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com