J'utilise Apache.commons.logging, pour l'instant je voulais utiliser l'implémentation SimpleLog, mais quand on change le niveau, les enregistreurs des bibliothèques sortent. Je veux qu'il l'éteigne. Existe-t-il un moyen simple de modifier le niveau de journalisation pour l'ensemble du package (Log4j peut-il le faire)?
J'ai essayé de régler
org.Apache.commons.logging.simplelog.log.foo = fatal
dans les fichiers de propriétés simplelog pour désactiver (le paramètre fatal est OK) foo logger, mais cela ne fonctionne pas. (foo est un nom d'enregistreur qui apparaît dans la sortie: [INFO] foo - Message).
Dans Log4j, vous pouvez spécifier un niveau de journalisation pour un package, une classe ou un enregistreur spécifié identifié par une chaîne. Vous écrivez simplement ceci dans le fichier log4j.properties:
log4j.logger.<your package> = DEBUG|INFO|OFF|WARN...
Tu devrais utiliser:
log4j.logger.foo = OFF
Veuillez noter que "foo" n'a pas besoin d'être un package ou une classe, mais est une chaîne arbitraire. Nous par exemple avoir un enregistreur nommé "SQL" qui est appelé à partir de nombreuses classes.
Si vous utilisez Spring Boot, vous pouvez définir sur OFF
dans le fichier application.properties. Exemple:
logging.level.org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer=OFF
L'utilisation de SimpleLog de Commons Logging nécessite deux fichiers de configuration, sauf si vous utilisez certaines propriétés système. Les fichiers sont: commons-logging.properties et simplelog.properties. Les propriétés de niveau journal que vous avez indiquées doivent être placées dans simplelog.properties comme:
org.Apache.commons.logging.simplelog.log.foo=warn
où "foo" est le nom de l'enregistreur. Généralement, il s'agit du package ou du package et du nom de classe. Dans l'exemple suivant, tout sous le package com.stackoverflow.utils est défini sur info tandis que com.stackoverflow.servlet.Dispatcher est spécifiquement défini sur avertir :
org.Apache.commons.logging.simplelog.log.com.stackoverflow.utils=info
org.Apache.commons.logging.simplelog.log.com.stackoverflow.servlet.Dispatcher=warn
Le fichier commons-logging.properties doit contenir:
org.Apache.commons.logging.Log=org.Apache.commons.logging.impl.SimpleLog