Ich möchte Protokolle in meinem Programm verwenden. Ich habe gehört, über java.util.logging, aber ich weiß nicht, wie zu beginnen.
Gibt es irgendwelche Beispiele dafür, was ich mit Logging machen kann? Wie würde ich die Protokollierung in meinem eigenen Programm verwenden?
Es gibt viele Beispiele und auch verschiedene Typen für die Protokollierung. Werfen Sie einen Blick auf das Paket java.util.logging.
Beispiel-Code:
import java.util.logging.Logger;
public class Main {
private static Logger LOGGER = Logger.getLogger("InfoLogging");
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
Ohne Festcodierung des Klassennamens:
import java.util.logging.Logger;
public class Main {
private static final Logger LOGGER = Logger.getLogger(
Thread.currentThread().getStackTrace()[0].getClassName() );
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
SLF4J ist eine bessere Logging-Fassade als Apache Commons Logging (ACL). Es verfügt über Brücken zu anderen Logging-Frameworks, so dass direkte Aufrufe von ACL, Log4J oder Java Util Logging über SLF4J laufen, so dass Sie alle Ausgaben in eine Log-Datei leiten können, wenn Sie dies wünschen, mit nur einer Log-Konfigurationsdatei. Warum sollte Ihre Anwendung mehrere Logging-Frameworks verwenden? Weil die von Ihnen verwendeten 3rd-Party-Bibliotheken, insbesondere ältere, dies wahrscheinlich tun.
SLF4J unterstützt verschiedene Logging-Implementierungen. Es kann alles in Standard-Out ausgeben, Log4J oder Logback verwenden (empfohlen gegenüber Log4J).
Ich würde vorschlagen, dass Sie Apache's Commons Logging Utility verwenden. Es ist hoch skalierbar und unterstützt separate Protokolldateien für verschiedene Logger. Siehe hier.