我有一個愚蠢的java日誌記錄問題:我從我的應用程序配置文件加載日誌記錄配置 - 但它不會在讀取文件後記錄任何內容(這看起來非常像示例除了額外的應用程序配置之外,您將在網絡上找到 - 刪除它也無濟於事)。 「初始化...」日誌行顯示得很好,但「啓動應用程序」和任何其他消息都沒有記錄到控制檯,也沒有創建日誌文件。我在這裏錯過了什麼?如何使用屬性文件設置java日誌記錄? (java.util.logging)
的記錄器的代碼如下所示:
...
Logger log = Logger.getLogger("myApp");
log.setLevel(Level.ALL);
log.info("initializing - trying to load configuration file ...");
Properties preferences = new Properties();
try {
FileInputStream configFile = new FileInputStream("/path/to/app.properties");
preferences.load(configFile);
LogManager.getLogManager().readConfiguration(configFile);
} catch (IOException ex)
{
System.out.println("WARNING: Could not open configuration file");
System.out.println("WARNING: Logging not configured (console output only)");
}
log.info("starting myApp");
...
而且這是在配置文件:
appconfig1 = foo
appconfig2 = bar
# Logging
handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level = ALL
# File Logging
java.util.logging.FileHandler.pattern = %h/myApp.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = INFO
# Console Logging
java.util.logging.ConsoleHandler.level = ALL
好吧,它確實與readConfiguration行有關係 - 我使用調試器對此進行了調整,並在此調用後清除了LogManager的所有屬性。 – VolkA 2009-06-06 18:16:20
哦,是的,明白了 - 我使用了兩次相同的輸入流,所以我需要使用configFile.reset()重新定位它 - 否則loadConfiguration()調用將無法讀取。順便說一句。 )只是從我的工作代碼複製錯誤。 – VolkA 2009-06-06 18:19:57