Log4j hello world exemple

Dans ce tutoriel, nous allons vous montrer comment utiliser le fichier log4j 1.2.x classique pour consigner un message de débogage ou d’erreur dans une application Java.

1. Répertoire du projet

Passez en revue la structure finale du projet, un projet Java standard de style Maven.

log4j-hello-world

2. Obtenez Log4j

Déclare les dépendances suivantes:

pom.xml

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

Pour les utilisateurs non-Maven, visitez la page officielle log4j , téléchargez le fichier jar et placez-le manuellement dans le chemin d’accès à la bibliothèque du projet.

3. log4j.properties

Créez un fichier log4j.properties et placez-le dans le dossier des ressources.

Reportez-vous à l’étape 1 ci-dessus.

dans le répertoire project/classes . Pour les applications Web Java, assurez-vous que le fichier log4j.properties est

dans le répertoire WEB-INF/classes

log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Laissez le décomposer:

  1. % d \ {aaaa-MM-jj HH: mm: ss} = Format de date et heure, voir

  1. % -5p = La priorité de journalisation, comme DEBUG ou ERROR. Le -5 est optionnel,

pour le joli format d’impression.

  1. % c \ {1} = Le nom de journalisation que nous avons défini via getLogger (), reportez-vous à

  1. % L = Le numéro de ligne d’où la demande de journalisation.

  2. % m% n = Le message à enregistrer et le saut de ligne.

Exemples de messages de journal:

2014-07-02 20:52:39 DEBUG className:200 - This is debug message
2014-07-02 20:52:39 DEBUG className:201 - This is debug message2

4. Démo - Comment enregistrer un message?

Pour consigner un message, commencez par créer un consignateur statique final et définissez un nom pour le consignateur. Nous utilisons normalement le nom complet de la classe du package.

    final static Logger logger = Logger.getLogger(classname.class);

Ensuite, enregistre les messages avec des priorités différentes, par exemple, debug, info, warn, error et fatal. Normalement, il vous suffit d’utiliser le débogage ou l’erreur.

   //logs a debug message
    if(logger.isDebugEnabled()){
        logger.debug("This is debug");
    }

   //logs an error message with parameter
    logger.error("This is error : " + parameter);

   //logs an exception thrown from somewhere
    logger.error("This is error", exception);

4.1 Exemple: Logger est défini sur debug priority.

log4j.properties

log4j.rootLogger=DEBUG, stdout

#...

HelloExample.java

package com.mkyong;

import org.apache.log4j.Logger;

public class HelloExample{

    final static Logger logger = Logger.getLogger(HelloExample.class);

    public static void main(String[]args) {

        HelloExample obj = new HelloExample();
        obj.runMe("mkyong");

    }

    private void runMe(String parameter){

        if(logger.isDebugEnabled()){
            logger.debug("This is debug : " + parameter);
        }

        if(logger.isInfoEnabled()){
            logger.info("This is info : " + parameter);
        }

        logger.warn("This is warn : " + parameter);
        logger.error("This is error : " + parameter);
        logger.fatal("This is fatal : " + parameter);

    }

}

Sortie

2014-07-02 20:52:39 DEBUG HelloExample:19 - This is debug : mkyong
2014-07-02 20:52:39 INFO  HelloExample:23 - This is info : mkyong
2014-07-02 20:52:39 WARN  HelloExample:26 - This is warn : mkyong
2014-07-02 20:52:39 ERROR HelloExample:27 - This is error : mkyong
2014-07-02 20:52:39 FATAL HelloExample:28 - This is fatal : mkyong

4.2 Exemple – L’enregistreur est défini sur erreur priorité.

log4j.properties

log4j.rootLogger=error, stdout

#...

Exécutez à nouveau HelloExample , vous obtiendrez le résultat suivant

2014-07-02 20:56:02 ERROR HelloExample:27 - This is error : mkyong
2014-07-02 20:56:02 FATAL HelloExample:28 - This is fatal : mkyong

Passez en revue la classe Priority de log4j.

Priority.java

package org.apache.log4j;

public class Priority {

  public final static int OFF__INT = Integer.MAX__VALUE;
  public final static int FATAL__INT = 50000;
  public final static int ERROR__INT = 40000;
  public final static int WARN__INT  = 30000;
  public final static int INFO__INT  = 20000;
  public final static int DEBUG__INT = 10000;
   //public final static int FINE__INT = DEBUG__INT;
  public final static int ALL__INT = Integer.MIN__VALUE;

Si la priorité est définie dans log4j.properties , seul le message de priorité identique ou supérieur sera consigné.

5. Démo - Comment enregistrer une exception

Un exemple pour vous montrer comment utiliser log4j pour enregistrer une exception.

HelloExample2.java

package com.mkyong;

import org.apache.log4j.Logger;

public class HelloExample2{

    final static Logger logger = Logger.getLogger(HelloExample2.class);

    public static void main(String[]args) {

        HelloExample2 obj = new HelloExample2();

        try{
            obj.divide();
        }catch(ArithmeticException ex){
            logger.error("Sorry, something wrong!", ex);
        }


    }

    private void divide(){

        int i = 10/0;

    }

}

Sortie

2014-07-02 21:03:10 ERROR HelloExample2:16 - Sorry, something wrong!
java.lang.ArithmeticException:/by zero
    at com.mkyong.HelloExample2.divide(HelloExample2.java:24)
    at com.mkyong.HelloExample2.main(HelloExample2.java:14)

Terminé.

Télécharger le code source

Télécharger le code source - log4j-hello-world-example.zip (8 KB)

Références

mise en page de modèle]. Wikipedia: log4j

  1. lien://ressort-MVC/printemps-MVC-log4j-intégration-exemple/[printemps MVC

exemple log4j]. lien://enregistrement/log4j-log4j-propriétés-exemples/[log4j.properties

exemples]

lien://tag/hello-world/[hello world]lien://tag/log4j/[log4j]