2 votes

Comment écrire uniquement des journaux INFO dans le fichier journal log4j?

Je veux écrire uniquement des journaux INFO dans le fichier de journalisation, ci-dessous se trouve ma configuration log4j.

Le fichier log4j.properties est :

log4j.rootLogger = INFO, FILE,
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=logs.out
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=100KB
log4j.appender.FILE.MaxBackupIndex=2
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p - %m%n

Le fichier Java est :

import org.apache.log4j.Logger;

public class Log4jDemo {

    private static Logger log=Logger.getLogger(Logger.class.getName());

    public static void main(String[] args) {
        log.info("info");
        log.error("error");
        log.fatal("fatal");
        log.warn("warn");
    }
}

Le fichier logs.out est :

12 Apr 2016 15:38:35  INFO - info
12 Apr 2016 15:38:35 ERROR - error
12 Apr 2016 15:38:35 FATAL - fatal
12 Apr 2016 15:38:35  WARN - warn

Ici je reçois des journaux dans le fichier logs.out qui sont INFO, ERROR, FATAL, WARN mais je veux écrire uniquement des journaux INFO dans le fichier logs.out

Quelqu'un peut-il suggérer comment atteindre cet objectif?

Ma question est unique, il ne s'agit pas de l'ordre hiérarchique de journalisation log4j log4j logging hierarchy order

Cela montre la configuration par défaut du framework log4j, mais je veux implémenter une configuration personnalisée, pouvez-vous m'aider à résoudre le problème?

2voto

Fildor Points 2538

J'ai trouvé le filtre que vous recherchez : org.apache.log4j.varia.LevelMatchFilter

MAIS :

"Notez que le filtrage est pris en charge uniquement par DOMConfigurator. PropertyConfigurator ne prend pas en charge les filtres. "

(Source : https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html)

Vous devrez probablement passer à un fichier de configuration XML.

Pour Log4j2, il y a le filtre ThresholdFilter comme déjà mentionné dans les commentaires.

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