[JAVA-log4j] un logger, plusieurs appender

Fermé
ronan - 28 juin 2006 à 19:44
 grizzlly13 - 6 sept. 2007 à 23:05
bonjour,

J'utilise l'API log4j pour gérer les logs de mon application.
Je souhaite realiser la chose suivante :
- afficher que les logs de niveau ERROR dans la console,
- ecrire tous les logs de niveau INFO dans un fichier

voici mon fichier log4j.properties, qui ne fonctionne pas :
log4j.logger.com.appli=ERROR, AppenderToConsole
log4j.logger.com.appli=INFO, AppenderToFile1

# Sorties sur le fichier
log4j.appender.AppenderToFile1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.AppenderToFile1.DatePattern='.'yyyy-MM-dd
log4j.appender.AppenderToFile1.File=/home/test/logs/test.log
log4j.appender.AppenderToFile1.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderToFile1.layout.ConversionPattern=%d %5p [%t] - %m%n

# Sorties sur la console
log4j.appender.AppenderToConsole=org.apache.log4j.ConsoleAppender
log4j.appender.AppenderToConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.AppenderToConsole.layout.ConversionPattern=%d %5p [%t] - %m%n


merci d'avance de votre aide

ronan
A voir également:

3 réponses

Alors il parfaitement possible defaire écrire un logger dans un endroit différent suivant le niveau du loga écrire. Il suffit simplement de définir deux appenders différents, dont le niveau de chacun correspond à celui dont l'endroit doit contenir les logs.
Dans le cas du topic, un appender console ayant un niveau ERROR et un appender rollingFile de niveau INFO. Dans ton fichier properties, il ne manque que les filtres de niveau.
Perso j'utilise la configuration par fichier xml, et dans ce cas ca donne :
<param name="Threshold" value="ERROR" /> afin de n'avoir que le level ERROR et plus... Il n'y en a pas
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" /><!-- echelon mini du log qui peut passer -->
<param name="LevelMax" value="INFO" /><!-- echelon maxi du log qui peut passer -->
</filter> afin de n'avoir que le level INFO en mini et INFO en maxi... Bref que l'INFO
J'espère que ca t'aura aidé.
2
salut je voudrais fiare le meme mais j´arrive pas est ce je pourrais avoir le code que tu as utilise.
merci d´avance
1
bonjour,

je repond a moi meme au cas ou ca pourrai depanner qqu'un d'autre.

ce que je voulais faire (un logger sur deux appender avec deux niveux differents) est impossible...

Il m'a fallu definir mon propre logger utilisé partout dans l'appli qui redirige les logs vers deux "sous-logger", un pour mon fichier de log et un pour la console. ces deux "sous-logger" etant diriges vers deux appender avec des niveaux cette fois independant.

voila
0