Ich habe ein dummes Java-Logging-Problem: Ich lade die Logging-Konfiguration aus meiner App-Konfigurationsdatei - aber es protokolliert einfach nichts nach dem Lesen der Datei (die ähnlich wie die Beispiele aussieht Sie finden im Netz bis auf die zusätzliche Anwendungskonfiguration - das Entfernen hilft auch nicht. Die Protokollzeile "initializing ..." erscheint gut, aber die "start app" und alle weiteren Nachrichten werden weder in der Konsole protokolliert, noch wird die Logdatei jemals erstellt. Was fehlt mir hier?Wie richte ich die Java-Protokollierung mithilfe einer Eigenschaftendatei ein? (java.util.logging)
Der Logger-Code sieht wie folgt aus:
...
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");
...
Und das ist die Konfigurationsdatei:
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
Nun, es hat etwas mit der Zeile readConfiguration zu tun - ich habe dies mit einem Debugger durchgegangen und alle Eigenschaften des LogManagers sind nach diesem Aufruf gelöscht. – VolkA
Oh ja, hab es - Ich benutze den gleichen Eingabestrom zweimal, also muss ich es mit configFile.reset() neu positionieren - ansonsten hat der Aufruf von loadConfiguration() nichts zu lesen. Übrigens. Das war nur ein Kopierfehler von meinem Arbeitscode. – VolkA