logger教學 - java util logging




如何使用JDK日誌記錄手動翻轉日誌文件 (2)

我有一個使用JDK Logging的應用程序,該應用程序使用logging.properties文件,該文件通過java.util.logging.FileHandler.count配置了一些較舊的日誌文件。

在應用程序中的某些點上,我想觸發日誌文件的手動滾動,以便啟動新的日誌文件,例如在計劃的活動啟動之前。

這可能與JDK日誌記錄?

在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.util.logging