comment définir le niveau de journalisation de l'INFO à l'ERREUR à l'aide de log4j2 api au moment de l'exécution?
logger.setLevel() méthode n'est pas disponible dans log4j2 API. Alors, comment définir le niveau de journal au moment de l'exécution.
- Double Possible de modifier par programmation niveau de journal dans Log4j2
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr si c'est la meilleure façon, mais vous réglez le niveau sur org.apache.la journalisation.log4j.de base.config.LoggerConfig que vous pouvez obtenir à partir de la LoggerContext via le LogManager.
Une fois configuré, vous pouvez mettre à jour les bûcherons avec la nouvelle configuration.
Comme un exemple:
Rendements:
reconfigure
sur le contexte.De crédit à amcintosh, j'ai enveloppé leurs réponse dans une fonction:
Malgré amoe commentaire, cela semble fonctionner correctement pour moi à l'aide de Log4J 2.5.
De mon côté, j'ai eu à utiliser ce code pour que cela fonctionne bien (basé sur les réponses précédentes).
Le problème était avec la
getLoggerConfig()
appel; si le module que vous en essayant de donner un nouveau niveau n'est pas encore enregistré, cette méthode renvoie la racine de l'exploitant (ou à tout intermédiaire sous chemin d'accès enregistrés), et donc au lieu de modifier le niveau decom.mycompany
vous permettra de modifierroot
oucom
niveau. C'est pourquoi vous devez ajouter une nouvelleLoggerConfig
dans le cas où le module à modifier n'est pas encore enregistré.Logger
existe avant d'appelergetLoggerConfig()
, droit?Les Api suivantes dans la classe org.apache.la journalisation.log4j.de base.config.Configurateur vous permettent de changer de niveau:
Gary Gregory est correct.
Aussi la réponse à cette question est à droite sur la page de la FAQ dans log4j2 du site
https://logging.apache.org/log4j/2.x/faq.html#reconfig_level_from_code
Exemple de Code ci-dessous: