[JAVA-log4j] un logger, plusieurs appender
ronan
-
grizzlly13 -
grizzlly13 -
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 :
merci d'avance de votre aide
ronan
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:
- [JAVA-log4j] un logger, plusieurs appender
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
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é.
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é.
salut je voudrais fiare le meme mais j´arrive pas est ce je pourrais avoir le code que tu as utilise.
merci d´avance
merci d´avance
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
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