Beim Programmstart wird geprüft, ob im user.home schon ein Verzeichnis für die Anwendung angelegt wurde. Wenn nicht wird es an dieser Stelle nachgeholt. Im zweiten Schritt werden die Einstellungen fürs Logging geladen. Diese sind Bestandteil der Anwendung (und können später vom Anwender überschrieben werden).
// Verzeichnis prüfen File logDir = new File(System.getProperty("user.home") + System.getProperty("file.separator") + ".app"); if(! logDir.exists()) logDir.mkdir(); // Einstellungen laden String res = "/my/app/logging.properties"; InputStream is = getClass().getResourceAsStream(res); LogManager.getLogManager().readConfiguration(is); |
Die Einstellungen fürs Logging werden in einem Properties-File gespeichert. Folgendes Beispiel konfiguriert den FileHandler und legt für den ConsolenHandler einen SimpleFormatter fest.
.level = OFF handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler java.util.logging.FileHandler.level = ALL java.util.logging.FileHandler.pattern = %h/.app/my.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 3 java.util.logging.FileHandler.append = true java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # ggf. "chcp 850" java.util.logging.ConsoleHandler.encoding = Cp850 java.util.logging.ConsoleHandler.level = ALL java.util.logging.ConsoleHandler.formatter = jul.SimpleFormatter my.app.MyClass.level = FINE |
siehe auch Supported Encodings
Erhält man eine Meldung wie Can’t set level for java.util.logging.ConsoleHandler hat man vielleicht nur ein Leerzeichen hinter dem Wert mit angegeben.
Um einen Logger nutzen zu können, leitet man diesem vom Root-Logger ab.
private static java.util.logging.Logger logger = java.util.logging.Logger.getLogger("my.class.name"); |
Webstart
Die Ausgabe einer Webstart-Anwendung wird unter %userdir%\Anwendungsdaten\Sun\Java\Deployment\log geschrieben. Vorausetzung ist, das das Protokollieren angeschaltet ist. Unter Start / Ausführen / javaws / Menü Bearbeiten / Einstellungen / Erweitert / Debugging kann die Protokollierung konfiguriert werden. Die Log-Datei javaws.log wird automatisch rotiert.
>Erhält man eine Meldung wie Can’t set level for >java.util.logging.ConsoleHandler hat man vielleicht nur ein
>Leerzeichen hinter dem Wert mit angegeben.
Danke :)