Könnte mir bitte jemand sagen Was ist die Beziehung zwischen log4j und apache.commons.logging? welcher ist beliebter und besser?
Ich habe eine vorhandene Anwendung importiert, in die sie import org.apache.commons.logging.LogFactory;
importiert und eine separate Klasse namens Log
geschrieben und einige der Methoden als critical
, warn
, info
Zum Beispiel
%Vor%Könnte mir jemand bitte sagen, dass log4j und apache.commons.logging anders sind?
Apache Commons Logging ist eine Abstraktion für die konkrete Implementierung. Es verwendet log4j, falls vorhanden und konfiguriert. Ich würde Commons verwenden, die meinen Code und log4j als Protokollierungsimplementierung anmelden.
log4j ist ein Protokollierungs-Framework, d. h. es stellt den Code zum Protokollieren von Nachrichten bereit. Commons-Logging ist eine Abstraktionsschicht zum Loggen von Frameworks, es protokolliert selbst nichts. Wenn ich zum Beispiel Code schreibe, der Common Logging verwendet, und ihn auf JBoss deployen, erfolgt die Protokollierung durch log4j. Wenn ich ihn jedoch auf WebSphere deploye, erfolgt die Protokollierung durch die eigene Protokollierungsimplementierung von WebSphere. Wenn ich denselben Code wie eine eigenständige Anwendung ausführe, wird Java eigene Protokollierung verwendet, die verwendet wird
Laut Dokumentation von java-doc von commons-logging
Konkrete Unterklasse von LogFactory, die den folgenden Algorithmus zur dynamischen Auswahl einer Protokollierungsimplementierungsklasse zur Instanziierung eines Wrappers für Folgendes implementiert:
Daraus folgt:
JavaDoc-URL: Ссылка