62 votes

Comment activer Logger.debug () dans Log4j

En essayant d’exécuter les lignes suivantes, seules les deux dernières instructions sont affichées ("Voici quelques erreurs" et "Voici quelques erreurs") et les trois premières instructions ne sont pas affichées.Je venais de commencer à apprendre ce sujet, Pourquoi cela arrive-t-il?

     logger.debug("Here is some DEBUG");
    logger.info("Here is some INFO");
    logger.warn("Here is some WARN");
    logger.error("Here is some ERROR");
    logger.fatal("Here is some FATAL");
 

le log4j.property a

 log4j.rootLogger=debug,stdout
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=[%5p] %d{mm:ss}(%F:%M:%L)%n%m%n%n
 

69voto

Thomas Lötzer Points 8388

Vous avez probablement un log4j.les propriétés de fichier quelque part dans le projet. Dans ce fichier, vous pouvez configurer le niveau de sortie de débogage que vous voulez. Voir cet exemple:

log4j.rootLogger=info, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.example=debug

La première ligne définit le niveau de journalisation de la racine enregistreur de frappe pour "info", c'est à dire uniquement info, warn, error et fatal sera imprimé sur la console (ce qui est le appender définie un peu en dessous).

La dernière ligne définit l'enregistreur de pour com.exemple.* (si vous obtenez votre enregistreurs via LogFactory.getLogger(getClass())) sera au niveau de debug, c'est à dire de débogage seront également imprimées.

56voto

Stephen C Points 255558

Voici un rapide hack d'une ligne que j'utilise occasionnellement pour activer temporairement la journalisation du débogage dans un test JUnit:

 Logger.getRootLogger().setLevel(Level.DEBUG);
 

11voto

yawn Points 2823

Placez un fichier nommé log4j.xml dans votre chemin de classe. Le contenu est par exemple

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{1}:%L - %m%n"/>
        </layout>
    </appender>

    <root>
        <level value="debug"/>
        <appender-ref ref="stdout"/>
    </root>

</log4j:configuration>
 

6voto

rsp Points 14367

Ceci est probablement dû au fait que votre configuration log4j est définie à l' ERROR. Recherchez un log4j.les propriétés de fichier avec le contenu suivant:

log4j.rootLogger=ERROR, CONSOLE

# console logging
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %-20.20t %-24c{1}: %m%n

L' rootLogger est définie à l' ERROR niveau ici à l'aide d'un CONSOLE appender.

Notez que certains appenders comme la console appender également avoir un Threshold de la propriété qui peut être utilisée pour annuler l' rootLoggers de niveau. Vous avez besoin de vérifier à la fois dans ce cas.

3voto

ChadNC Points 1655

J'aime utiliser un appender de fichier en défilement pour écrire les informations de journalisation dans un fichier. Mon fichier de propriétés log4j ressemble généralement à ceci. Je préfère cette méthode, car j’aime effectuer une journalisation spécifique à un package au cas où j’ai besoin de divers degrés de journalisation pour différents packages. Un seul paquet est mentionné dans l'exemple.

 log4j.appender.RCS=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RCS.File.DateFormat='.'yyyy-ww
#define output location
log4j.appender.RCS.File=C:temp/logs/MyService.log
#define the file layout
log4j.appender.RCS.layout=org.apache.log4j.PatternLayout
log4j.appender.RCS.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm a} %5 %c{1}: Line#%L - %m%n
log4j.rootLogger=warn
#Define package specific logging
log4j.logger.MyService=debug, RCS
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X