1. Préface
Log4j est un framework de journalisation fiable, rapide et flexible (API) écrit en Java, publié sous la licence logicielle Apache. Log4j a été porté dans des langues telles que C, C ++, C #, Perl, Python et Ruby.
Log4j est hautement configurable et peut être configuré via des fichiers externes lors de l'exécution. Cela dépend du niveau de priorité de l'enregistrement et fournit des mécanismes pour indiquer les informations de journalisation à de nombreuses destinations, telles que: bases de données, fichiers, consoles, journaux système UNIX, etc.
Il y a trois composants principaux dans log4j:
Locgateurs: responsable de la capture d'informations d'enregistrement.
Annexe: Responsable de la publication des informations sur les journaux à différentes destinations préférées.
Disposition: responsable de la mise en forme des informations sur les journaux de différents styles.
Remarque: Cet article est basé sur LOG4J 2.x et supérieur.
2. Installation
log4j-core-xx.jar
log4j-api-xx.jar
log4j-web-xx.jar (référence requise pour les projets Web)
3. Configuration
Préparez quelques journaux pour ajouter les références suivantes:
import org.apache.logging.log4j.logmanager; import org.apache.logging.log4j.logger;
STATIC LOGGER LOGGER = LOGMANAGER.GETLOGGER (TEST.CLASS.GETNAME ());
L'emplacement du fichier de configuration est situé dans: SRC Root Directory. Même s'il n'y a pas de fichier de configuration, il n'y aura pas d'erreur. Par défaut, il est sorti sous forme de console .
Le fichier de configuration log4j2 est très différent de Log4 (la version 1.x est très différente) et ne peut utiliser que les formats .xml, .json ou .jsn. La configuration spécifique est la suivante ( ${web:rootDir} représente le répertoire de racine Web):
<? xml version = "1.0" Encoding = "UTF-8"?> <Configuration Status = "Error"> <! - Définissez tous les annexes -> <annexes> <! - Configuration de cette console de sortie -> <Console Name = "Console" Target = "System_out"> <! - Ceci est le format du logiciel de sortie -> <Patternlayout Pattern = "% D {HH: mm: S. % -5level% class {36}% l% m -% msg% xex% n "/> </console> <! - Le fichier imprimera toutes les informations. Ce journal sera automatiquement effacé à chaque fois qu'il s'exécute, qui est déterminé par l'attribut APPEND, adapté aux tests temporaires -> <file name = "error" filename = "$ {web: rootdir} /logs/error.log", et les autres "False"> <! - Le fichier enregistre uniquement les informations au niveau et au-dessus (onMatch), et les autres sont directement rejetés (OnMismatch) -> onMatch = "accepter" onMismatch = "deny" /> <pattemlayout charset = "utf-8" Pattern = "% d {hh: mm: ss.sss}% -5level% class {36}% l% m -% msg% xex% n" /> </fichier> <! - Cela imprimera toutes les informations. Chaque fois que la taille dépasse la taille, le journal de cette taille sera automatiquement stocké dans le dossier créé par mois et compressé en tant qu'archive -> <rollingfile name = "rollingfile" filename = "$ {web: rootdir} /logs/history.log" filepattern = "log / $$ {date: yyyy-mm} / historique-% d {mm-dd-yyy} -% i.log.gz"> <pathlayout charset = "utf-8" path % msg% xex% n "/> <sizebasedtriggeringPolicy size =" 50mb "/> </rollingfile> </nexes> <! - Définissez ensuite l'enregistreur. L'appender ne prendra effet que si l'enregistreur est défini et introduit. -> <gogners> <! - Créez un logger racine par défaut -> <root niveau = "trace"> <appender-ref ref = "error" /> <appender-ref Ref = "rollingfile" /> <appender-ref ref = "console" /> </ root> </ogggers> </ configuration>4. Projets ordinaires et projets Web
Pour les projets ordinaires, la configuration ci-dessus peut être utilisée normalement après avoir terminé la configuration ci-dessus et pour les projets Web, les fichiers journaux ne seront pas générés. Vous devez ajouter la configuration suivante sous le nœud racine de <web-app> dans web.xml:
<! - log4j2.x start -> <ouciner> <écouteur-class> org.apache.logging.log4j.web.log4jservletContextListener </ auteur-cllass> </duner> <filter> <filter-name> log4jservletfilter </inter-name> <Filter-Class> org.apache.logging.log4j.web.log4jservletfilter </filter-Class> </filter> <Imlter-Mapping> <filter-Name> Log4JServletFilter </filter-Name> <Url-Pattern> / * </url-Pattern> </filter-maping> <! - Log4j2
Résumer
Ce qui précède est la méthode d'utilisation de log4j pour enregistrer les journaux en Java. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.