Logger provient du propre package de log4j. Si vous utilisez Logger.getLogger, vous avez besoin d'un package jar log4j. De cette façon, vous ne pouvez compter que sur log4j :
LogFactory provient du package common-logging. Si vous utilisez LogFactory.getLog, vous pouvez remplacer log4j par n'importe quel enregistreur qui implémente l'interface de journalisation commune, et le programme ne sera pas affecté. Le package de journalisation commune d'Apache est une interface de journalisation universelle Grâce à cette couche intermédiaire, vous pouvez spécifier le système de journalisation à utiliser. Augmentez la flexibilité du système. Si log4j n'existe pas, commons-logging choisira d'autres classes d'implémentation de journaux. Cela garantit que le fichier journal log4j ne doit pas être utilisé dans le programme.
Raisons d’une flexibilité accrue :
1) Tout d'abord, recherchez votre propre fichier de configuration commons-logging.properties sous le chemin de classe. S'il est trouvé, utilisez la classe d'implémentation Log qui y est définie ;
2) Si le fichier commons-logging.properties est introuvable, vérifiez si la variable d'environnement système org.apache.commons.logging.Log a été définie. Si elle est trouvée, utilisez la classe d'implémentation Log définie par celle-ci ;
3) Sinon, vérifiez s'il existe un package Log4j dans le chemin de classe. S'il est trouvé, Log4j sera automatiquement utilisé comme classe d'implémentation du journal ;
4) Sinon, utilisez la propre classe d'implémentation de journal du JDK (la classe d'implémentation de journal n'est disponible qu'après JDK1.4) ;
5) Sinon, utilisez une classe d'implémentation de journal simple SimpleLog fournie par commons-logging ;
Afin de simplifier la configuration de commons-logging, le fichier de configuration de commons-logging n'est généralement pas utilisé et les variables d'environnement système liées à commons-logging ne sont pas définies. Au lieu de cela, le package Jar de Log4j est simplement placé dans classpash. De cette manière, l’intégration de commons-logging et de Log4j s’effectue très simplement.
Selon différentes propriétés, les informations du journal sont généralement divisées en différents niveaux, de bas en haut : "Debug (DEBUG)" "Information (INFO)" "Warning (WARN)" "Error (ERROR)" "Fatal Error (FATAL) ) ".
Basé sur le mode de fonctionnement de journalisation commun :
Copiez le code comme suit :
organisation de paquets ;
importer org.apache.commons.logging.Log ;
importer org.apache.log4j.Logger ;
Le test de classe publique étend TagSupport{
journal statique public log = LogFactory.getLog (Test.class);
test de vide statique public()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("erreur");
}
public static void main(String[] a)
{
Test.test();
}
}
Méthode de fonctionnement basée sur log4j
Copiez le code comme suit :
importer org.apache.log4j.Logger ;
importer org.apache.log4j.PropertyConfigurator ;
classe publique TestLog4j {
enregistreur statique logger = Logger.getLogger (TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Voici du DEBUG");
logger.info("Voici quelques INFOS");
logger.warn("Voici un WARN");
logger.error("Voici une ERREUR");
logger.fatal("Voici du FATAL");
}
}
commons-logging ne fournit qu'une couche de packaging pour Log4j (y compris d'autres implémentations LOG, bien sûr). La sortie du journal spécifique est toujours transférée en interne vers Log4j pour traitement, et log4j ira par défaut dans le répertoire classes pour trouver le fichier log4j.properties. déposer.