Java Logging

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java
  • Beitrags-Kommentare:Ein Kommentar

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.

Links

Java Logging Overview

Logging in Tomcat 5.5

Dieser Beitrag hat einen Kommentar

  1. Shepherd

    >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 :)

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.