Je voudrais avoir deux loggers log4j
différents dans mon application, et pour qu’il n’y ait pas de “chevauchement” entre les contenus, ils écrivent sur leurs logs de respect.
Par exemple:
Mon log4j.properties est le suivant:
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 le suivant:
public static void main(Ssortingng[] args) { PropertyConfigurator.configure(Client.class .getResource("/log4j.properties")); xdasLogger = Logger.getLogger("xdasLogger"); logger = Logger.getLogger(Client.class); logger.info("normal"); xdasLogger.info("xdas"); }
Mais la sortie de ma console est la suivante:
normal 2012-06-28 09:52:44,580 INFO xdasLogger - xdas xdas
Notez que “xdas” est consigné par logger
et xdasLogger
, ce qui est indésirable.
Est-ce que quelqu’un sait quelles modifications j’ai besoin de mettre dans mon log4j.properties pour changer la sortie de la console à la suivante?
normal 2012-06-28 09:52:44,580 INFO xdasLogger - xdas
Solution (tirée de la réponse acceptée):
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
Essayez de définir l’additivité des enregistreurs sur false. Cela évitera la propagation vers le rootLogger.
log4j.additivity.org.apache=false log4j.additivity.xdasLogger=false