我有一个愚蠢的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