Maison Java javaDidacticiel Comment utiliser log4j pour enregistrer des journaux en Java

Comment utiliser log4j pour enregistrer des journaux en Java

Jan 18, 2017 am 11:54 AM

1. Avant-propos

log4j est un framework de journalisation (API) fiable, rapide et flexible écrit en Java, publié sous la licence logicielle Apache. Log4j a été porté sur des langages tels que C, C++, C#, Perl, Python et Ruby.

Log4j est hautement configurable et peut être configuré via des fichiers externes au moment de l'exécution. Il donne la priorité à la journalisation et fournit des mécanismes pour diriger les informations de journalisation vers de nombreuses destinations, telles que les bases de données, les fichiers, les consoles, les journaux système UNIX, etc.

Il y a trois composants principaux dans Log4j :

Loggers : responsables de la capture des informations de journalisation.

appenders : responsables de la publication des informations du journal vers différentes destinations préférées.

mises en page : responsable du formatage des informations du journal dans différents styles.

Remarque : cet article est basé sur log4j 2.X et supérieur.

2. Installer

log4j-core-xx.jar

log4j-api-xx.jar

log4j-web -xx.jar (référence obligatoire pour les projets web)

3. Configuration

Préparez quelques classes de log et ajoutez les références suivantes :

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Copier après la connexion
static Logger logger = LogManager.getLogger(Test.class.getName());
Copier après la connexion

Fichier de configuration location Situé dans le répertoire racine : src, aucune erreur ne sera signalée même s'il n'y a pas de fichier de configuration, et la sortie est sous forme de console par défaut.

Le fichier de configuration log4j2 est très différent de log4 (1. ) :

<?xml version="1.0" encoding="UTF-8"?>
 
<configuration status="error">
 <!--先定义所有的appender-->
 <appenders>
  <!--这个输出控制台的配置-->
  <Console name="Console" target="SYSTEM_OUT">
   <!--这个是输出日志的格式-->
   <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </Console>
  <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用-->
  <File name="Error" fileName="${web:rootDir}/logs/error.log" append="false">
   <!--文件只记录level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
   <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
   <PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </File>
 
  <!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
  <RollingFile name="RollingFile" fileName="${web:rootDir}/logs/history.log"
      filePattern="log/$${date:yyyy-MM}/history-%d{MM-dd-yyyy}-%i.log.gz">
   <PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd &#39;at&#39; HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
   <SizeBasedTriggeringPolicy size="50MB"/>
  </RollingFile>
 </appenders>
 <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
 <loggers>
  <!--建立一个默认的root的logger-->
  <root level="trace">
   <appender-ref ref="Error"/>
   <appender-ref ref="RollingFile"/>
   <appender-ref ref="Console"/>
  </root>
 </loggers>
</configuration>
Copier après la connexion

4. Projets ordinaires et projets web

Pour les projets ordinaires, il peut être utilisé. normalement une fois la configuration ci-dessus terminée. Pour les projets Web, il ne sera pas généré. Vous devez ajouter la configuration suivante sous le nœud racine de dans le Web. Le contenu de cet article peut être utile à l'étude ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. . Merci pour votre soutien au site Web PHP chinois.

<!-- log4j2.x start -->
<listener>
 <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<filter>
 <filter-name>log4jServletFilter</filter-name>
 <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>log4jServletFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- log4j2.x end -->
Copier après la connexion
Pour plus d'articles sur la façon d'utiliser log4j pour enregistrer des journaux sous Java, veuillez faire attention au site Web PHP chinois !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)