Je tiens à ajouter de la journalisation pour une application que je suis en train d'élaborer, à l'aide d'apache log4j. À ce point, je veux rediriger tous les messages de log pour le niveau INFO et inférieure (TRACE de DÉBOGAGE) sur la sortie standard stdout et tous les autres messages du journal d'AVERTIR et au-dessus (ERREUR FATALE) vers stderr. Par exemple:
...
logger.info("Processing at some point"); // must be written to stdout
logger.debug("Point x was processed"); // must be written to stdout
logger.warn("Incorrect point config"); // must be written only to stderr
logger.error("Exception occurred at point x"); // must be written only to stderr
Donc ce qui doit être mon log4j.fichier de propriétés? Voici à quoi il ressemble en ce momment:
log4j.rootLogger=DEBUG, stdout, stderr
# configure stdout
# set the conversion pattern of stdout
# Print the date in ISO 8601 format
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n
# configure stderr
# set the conversion pattern of stdout
# Print the date in ISO 8601 format
log4j.appender.stderr = org.apache.log4j.ConsoleAppender
log4j.appender.stderr.Threshold = WARN
log4j.appender.stderr.Target = System.err
log4j.appender.stderr.layout = org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n
Le problème avec la configuration ci-dessus est que l'instrument.erreur() ... est imprimé sur stdout trop.