Ich entwickle eine Java-Anwendung, für die ich einen Protokollierungsmechanismus verwenden muss. Und jetzt bin ich verwirrt, um entweder Java-Bibliothekslogger oder Log4j Logger zu wählen.
Ich will also wissen, wann ich Java-Logger machen kann und wenn ich Log4j Logger gehen kann.
Ich würde vorschlagen, dass Sie stattdessen SLF4J verwenden, um Ihre Anwendung von bestimmten Protokollierungs-Frameworks zu entkoppeln. Es hat Adapter für verschiedene gängige Logging-Frameworks wie Jakarta Logging, JDK1.4 Logging, Log4j etc. und ist damit eine gute Abstraktion für Logging-Bedürfnisse.
Die Logger-Klasse war früher nicht Teil von jdk, daher entstanden mehrere Bibliotheksimplementierungen. Die Log4j-Bibliothek verfügt über einen der umfangreichsten Logging-Dienstprogramme (Formatierer, Appender usw.). Für die meisten Entwickler wäre dies jedoch ein Overkill und der einfache java.util.Logger würde ausreichen.
Ich persönlich benutze einen benutzerdefinierten Wrapper über meine Logger-Implementierung. Dadurch kann ich benutzerdefinierte Aufrufe definieren, um eine funktionale Protokollierung / Überwachung durchzuführen.
Es gibt Apache Commoms Logging und SLF4J , von denen beide die zugrunde liegende Protokollierungsbibliothek abstrahieren.
In der Praxis tendiere ich dazu, Log4J über die eingebauten Logging-Klassen zu verwenden. Hauptsächlich, weil Log4J pro Web-App in einem Anwendungsserver konfiguriert werden kann, während die JDK-Protokollierung per JVM konfiguriert ist.
Der Ansatz, den ich derzeit empfehlen würde, ist die Verwendung von SLF4J als Protokollierungs-API. Sie können dann Ihr Protokollierungs-Framework abhängig von Ihren Anforderungen auswählen, wenn Sie sie entdecken.
Ich habe einen Artikel darüber verfasst, was ich als beste Vorgehensweise für den Einstieg in SLF4J und ein einfaches "log auf System.out" ansehe, das momentan bei. Ссылка
Hoffentlich ist es hilfreich.
Tags und Links java logging log4j java.util.logging