log4j.fichier de propriétés - plusieurs bûcherons dans la même classe
Je voudrais avoir deux différents log4j
bûcherons dans mon application, et qu'il n'existe pas de "chevauchement" entre le contenu qu'ils écrivent à leur égard les journaux.
Par exemple:
- Logger1 écrit INFO les événements liés à un ensemble d'événements du système
- Logger2 écrit INFO les événements liés à un autre ensemble d'événements du système
- Pas d'entrée doit apparaître dans le journal deux fois
Mon log4j.les propriétés comme suit:
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
Mon code Java est comme suit:
public static void main(String[] args) {
PropertyConfigurator.configure(Client.class
.getResource("/log4j.properties"));
xdasLogger = Logger.getLogger("xdasLogger");
logger = Logger.getLogger(Client.class);
logger.info("normal");
xdasLogger.info("xdas");
}
Mais ma sortie de la console est comme suit:
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
xdas
Note que "xdas" est enregistré par les deux logger
et xdasLogger
, ce qui est indésirable.
Personne ne sait quels sont les changements que je dois mettre dans mon log4j.propriétés pour modifier la sortie de la console à la suivante?
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
Solution (prises à partir accepté de répondre):
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
Vous devez vous connecter pour publier un commentaire.
Essayez de définir l'additivité des bûcherons à false. Cela permettra d'éviter la propagation de la rootLogger.
/etc/spark/conf/log4j.properties
, n'est-ce pas exact? Dois-je recommencerSpark
(ou réinitialiser autre chose), de sorte que les propriétés mises à jour sont ramassées?Spark 2.3.0
(sortie le 28 Février, 2018) utilise encorelog4j
comme l'a dit ici. En outre, que voulez-vous dire par "enregistreur de noms est déjà configuré dans la log4j.propriétés pour le Spark"? Dans lelog4j.properties
fichiers je vois des lignes, comme ceslog4j.rootCategory=WARN,console
&log4j.appender.console=org.apache.log4j.ConsoleAppender
/etc/spark/conf.dist/log4j.properties
fichier. Bien que j'ai rétrogradé àSpark 2.2.1
(toujours surEMR 5.12.0
), qui ne semble pas avoir d'impact sur cette question.