Log4j Hallo Weltbeispiel

In diesem Tutorial zeigen wir Ihnen, wie Sie mit dem klassischen log4j 1.2.x eine Debug- oder Fehlernachricht in einer Java-Anwendung protokollieren.

1. Projektverzeichnis

Überprüfen Sie die endgültige Projektstruktur, ein Java-Standardprojekt im Maven-Stil.

log4j-hello-world

2. Holen Sie sich Log4j

Erklärt die folgenden Abhängigkeiten:

pom.xml

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

Für Nicht-Maven-Benutzer besuchen Sie die Seite log4j , laden Sie das Jar herunter und legen Sie es manuell in den Pfad der Projektbibliothek.

3. log4j.properties

Erstellen Sie eine `log4j.properties'-Datei und legen Sie sie im Ressourcenordner ab.

Siehe oben, Schritt 1.

im Verzeichnis project/classes . Stellen Sie für Java-Webanwendungen sicher, dass die Datei log4j.properties vorhanden ist

im Verzeichnis 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

Lass es zusammenbrechen:

  1. % d \ {jjjj-MM-tt HH: mm: ss} = Datums- und Uhrzeitformat, siehe

  1. % -5p = Die Protokollierungspriorität wie DEBUG oder ERROR. Die -5 ist optional,

für das hübsche Druckformat.

  1. % c \ {1} = Der Protokollierungsname, den wir über getLogger () festgelegt haben

  1. % L = Die Zeilennummer, von der die Protokollierungsanforderung stammt.

  2. % m% n = Die zu protokollierende Nachricht und der Zeilenumbruch.

Beispiele für Protokollnachrichten:

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. Demo - Wie protokolliere ich eine Nachricht?

Um eine Nachricht zu protokollieren, erstellen Sie zuerst einen "final static" -Logger und definieren einen Namen für den Logger. Normalerweise verwenden wir den vollständigen Paketklassennamen.

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

Protokolliert dann Nachrichten mit unterschiedlichen Prioritäten, z. B. debug, info, warn, error und fatal. Normalerweise müssen Sie nur Debug oder Fehler verwenden.

   //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 Beispiel: Logger ist auf debug Priorität gesetzt.

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);

    }

}

Ausgabe

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 Beispiel – Der Logger ist auf Fehler Priorität gesetzt.

log4j.properties

log4j.rootLogger=error, stdout

#...

Starten Sie das HelloExample erneut, Sie erhalten die folgende Ausgabe

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

Überprüfen Sie die Klasse "Priority" von log4j.

Priorität.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;

Wenn Priorität in log4j.properties definiert ist, wird nur die gleiche oder über der Prioritätsnachricht protokolliert.

5. Demo - So protokollieren Sie eine Ausnahme

Ein Beispiel, das zeigt, wie Sie mit log4j eine Ausnahme protokollieren.

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;

    }

}

Ausgabe

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)

Erledigt.

Quellcode herunterladen

Quellcode herunterladen - log4j-hello-world-example.zip (8 KB)

Referenzen

Musterlayout]. Wikipedia: log4j

  1. link://spring-mvc/spring-mvc-log4j-integration-beispiel/[Spring MVC

log4j Beispiel]. link://logging/log4j-log4j-properties-beispiele/[log4j.properties

Beispiele]

Link://Tag/Hallo-Welt/[Hallo Welt]Link://Tag/Log4j/[Log4j]