sl4j et le logback - Est-il possible de définir par programme le niveau de journalisation pour le paquet?
Je suis capable de programmation pour définir le niveau de journalisation de l'application avec le code suivant, mais il est également possible de faire cette sur un paquet niveaudire com.somepackage.* où je veux que le niveau d'ERREUR plutôt que de DÉBOGAGE ou d'INFO sur l'déclaré forfait?
//Sets the logging level to INFO
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
rootLogger.setLevel(Level.INFO);
Mais je n'arrive pas à trouver un moyen de le mettre sur un paquet de niveau...
source d'informationauteur Stephane Grenier
Vous devez vous connecter pour publier un commentaire.
Vous devez définir le nom du package logger-nom
Vous devriez être en mesure d'obtenir le nom du package plus élégant, mais c'est principalement ça.
Cela suit l'arbre comme la hiérarchie de l'Enregistreur de Contexte:
Enregistreur De Contexte
Vous pouvez le faire en utilisant logback..
Cela a résolu mon problème.
Vous pouvez obtenir le SLF4J logger pour le paquet et de le jeter aux Logback enregistreur. Moins de code que @dimitri-dewaele.
@nandu-prajapati l'approche est similaire, sauf qu'il définit la racine de l'enregistreur de niveau, et non pas celui désiré.
Dans le cas où vous ne voulez pas changer le logback-classique de la compilation de la dépendance du temps, voici un code qui utilise la réflexion pour définir ce niveau en supposant que logback est utilisé comme slf4j exécution de liaison. Ici AbcClass est la classe dont le logger vous souhaitez changer de niveau de TRACE:
Quelque chose de similaire peut être fait pour log4j et la journalisation JDK pour faire de ce (genre de) bibliothèque agnostique