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).
[code lang=“java“]// 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);[/code]
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. In der Darstellung wurde zur besseren Lesbarkeit java.util.logging durch jul ersetzt.
.level = OFF
handlers= jul.FileHandler, jul.ConsoleHandler
jul.FileHandler.level = ALL
jul.FileHandler.pattern = %h/.app/my.log
jul.FileHandler.limit = 50000
jul.FileHandler.count = 3
jul.FileHandler.append = true
jul.FileHandler.formatter = jul.SimpleFormatter
jul.ConsoleHandler.level = ALL
jul.ConsoleHandler.formatter = jul.SimpleFormatter
my.app.MyClass.level = FINE
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.
[code lang=“java“]private static java.util.logging.Logger logger =
java.util.logging.Logger.getLogger(„my.class.name“);[/code]
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 :)