Logger stammt aus dem eigenen Paket von log4j. Wenn Sie Logger.getLogger verwenden, benötigen Sie ein log4j-JAR-Paket. Auf diese Weise können Sie sich nur auf log4j verlassen:
LogFactory stammt aus dem Common-Logging-Paket. Wenn Sie LogFactory.getLog verwenden, können Sie log4j durch einen beliebigen Logger ersetzen, der die gemeinsame Protokollierungsschnittstelle implementiert, und das Programm wird nicht beeinträchtigt. Das Common-Logging-Paket von Apache ist eine universelle Protokollierungsschnittstelle. Über diese mittlere Ebene können Sie angeben, welches Protokollierungssystem verwendet werden soll. Erhöhen Sie die Systemflexibilität. Wenn log4j nicht vorhanden ist, wählt commons-logging andere Protokollimplementierungsklassen aus. Dadurch wird sichergestellt, dass die log4j-Protokolldatei nicht im Programm verwendet werden muss.
Gründe für mehr Flexibilität:
1) Suchen Sie zunächst im Klassenpfad nach Ihrer eigenen Konfigurationsdatei commons-logging.properties. Wenn Sie sie finden, verwenden Sie die darin definierte Log-Implementierungsklasse.
2) Wenn die Datei commons-logging.properties nicht gefunden werden kann, prüfen Sie, ob die Systemumgebungsvariable org.apache.commons.logging.Log definiert wurde. Wenn sie gefunden wird, verwenden Sie die von ihr definierte Log-Implementierungsklasse.
3) Überprüfen Sie andernfalls, ob sich im Klassenpfad ein Log4j-Paket befindet. Wenn es gefunden wird, wird Log4j automatisch als Protokollimplementierungsklasse verwendet.
4) Andernfalls verwenden Sie die eigene Protokollimplementierungsklasse des JDK (die Protokollimplementierungsklasse ist erst nach JDK1.4 verfügbar).
5) Andernfalls verwenden Sie eine einfache Protokollimplementierungsklasse SimpleLog, die von commons-logging bereitgestellt wird.
Um die Konfiguration der Commons-Protokollierung zu vereinfachen, wird die Konfigurationsdatei der Commons-Protokollierung im Allgemeinen nicht verwendet und die mit der Commons-Protokollierung verbundenen Systemumgebungsvariablen werden nicht festgelegt. Stattdessen wird das Jar-Paket von Log4j einfach in classpash abgelegt. Auf diese Weise ist die Integration von Commons-Logging und Log4j sehr einfach.
Je nach Eigenschaften werden Protokollinformationen normalerweise in verschiedene Ebenen unterteilt, von niedrig bis hoch: „Debug (DEBUG)“, „Information (INFO)“, „Warnung (WARN)“, „Fehler (ERROR)“, „Schwerwiegender Fehler (FATAL)“. ".
Basierend auf dem allgemeinen Protokollierungsbetriebsmodus:
Kopieren Sie den Codecode wie folgt:
Paket org;
import org.apache.commons.logging.Log;
import org.apache.log4j.Logger;
Öffentlicher Klassentest erweitert TagSupport{
öffentliches statisches Protokoll log=LogFactory.getLog(Test.class);
öffentlicher statischer Void-Test()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("error");
}
public static void main(String[] a)
{
Test.test();
}
}
Betriebsmethode basierend auf log4j
Kopieren Sie den Codecode wie folgt:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
öffentliche Klasse TestLog4j {
static Logger logger = Logger.getLogger(TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Hier ist etwas DEBUG");
logger.info("Hier sind einige INFO");
logger.warn("Hier ist eine WARNUNG");
logger.error("Hier ist ein FEHLER");
logger.fatal("Hier ist etwas FATALES");
}
}
commons-logging stellt nur eine Verpackungsebene für Log4j bereit (natürlich auch für andere LOG-Implementierungen). Die spezifische Protokollausgabe wird weiterhin intern zur Verarbeitung an Log4j übertragen, und log4j geht standardmäßig in das Klassenverzeichnis, um die log4j.properties zu finden Datei.