Java Logging
Fürs Erste soll das einfache Beispiel eines Logging auf die Console reichen:
import java.util.logging.*; public class LoggingDemo { static Logger LOGGER = Logger.getLogger("LoggingDemo"); static Handler handler; public LoggingDemo() { // Console Handler erzeugen: handler = new ConsoleHandler(); // Log Level des Handlers auf FINEST setzen: handler.setLevel(Level.FINEST); LOGGER.addHandler(handler); LOGGER.setUseParentHandlers(false); // Eine Log-Meldung ausgeben: LOGGER.finest("Juju, wir haben einen Log-Meldung erzeugt."); } }
Das Logging kann auch über eine Datei logging.properties gesteuert werden.
Festlegen, von wo die Datei geladen werden soll:
try { String strLogPath = "/log/logging.properties"; // Ort von logging.properties festlegen File fileLog = new File(strLogPath); LogManager.getLogManager().readConfiguration(new FileInputStream(fileLog)); }catch (Exception e){ e.printStackTrace(); }
Eine beispielhafte logging.properties:
#Handler festlegen: #Der ConsoleHandler gibt die Log-Meldungen auf der Console aus: handlers = java.util.logging.ConsoleHandler #Es dürften auch mehrere Handler aktiv sein; hier Console- und FileHandler: #handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler #Festlegen des Default Loglevels: .level= INFO #Maximale Größe der Log-Datei in Byte: java.util.logging.FileHandler.limit = 100000 #Anzahl der Dateien, die verwendet werden sollen: java.util.logging.FileHandler.count = 1 #Der Formatter; legt die Formatierung der Ausgabe fest: java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.pattern = MyApplication.log
Auch der Stacktrace lässt sich loggen:
LOGGER.log(Level.SEVERE, "Message", e);
Es gibt folgende Methoden zum Loggen:
severe(msg)
warning(msg)
info(msg)
config(msg)
fine(msg)
finer(msg)
finest(msg)