Ich habe ein dummes Java-Protokollierungsproblem: Ich lade die Protokollierungskonfiguration aus meiner App-Konfigurationsdatei - aber sie protokolliert nach dem Lesen der Datei nichts (was den Beispielen im Internet ziemlich ähnlich ist, außer der zusätzliche Anwendungskonfiguration - das Entfernen hilft auch nicht). Die Protokollzeile "Initialisieren ..." wird einwandfrei angezeigt, aber die "Start-App" und weitere Nachrichten werden weder an der Konsole protokolliert, noch wird die Protokolldatei jemals erstellt. Was fehlt mir hier?
Der Logger-Code sieht folgendermaßen 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
Sie können Ihre Protokollierungskonfigurationsdatei über die Befehlszeile festlegen:
Dieser Weg scheint sauberer und leichter zu warten.
quelle
Ich habe versucht, Ihren Code im obigen Code zu verwenden. Verwenden Sie nicht die Anweisung [settings.load (configFile);] und es wird funktionieren. Hier wird Beispielcode ausgeführt
quelle
das funktioniert .. :) du musst InputStream in readConfiguration () übergeben.
quelle
Suchen Sie nach der Protokolldatei im richtigen Pfad:% h / one% u.log
Hier wird% h in Ihr Zuhause aufgelöst: In Windows lautet der Standardwert: C: \ Dokumente und Einstellungen (Benutzername).
Ich habe den von Ihnen geposteten Beispielcode ausprobiert und er funktioniert einwandfrei, nachdem Sie den Pfad der Konfigurationsdatei angegeben haben (logging.properties entweder über Code oder Java-Argumente).
quelle