Wie dynamisch ändern log-level in SLF4j ODER Log4J

Kürzlich stieß ich auf eine Situation, in der Anwendung Loglevel dynamisch ändert. Application Admin kann Sie auf INFO/DEBUG/WARNEN von front-end. Basierend auf den log-level gewählt werden, ihn der Anwendung Protokollierung geändert werden muss.

Ich bin sicher, dass die Logger die dieses Szenario unterstützen, aber nicht sicher, wie kann ich erreichen dies. Wenn jemand von Euch eine Idee/Gedanken über dieses bitte lassen Sie mich wissen.

Dank im Voraus für Eure Hilfe.

-Narendra

  • Sie können nicht dies tun, indem Sie die SLF4J-API, müssen Sie konfigurieren die logging-backend (log4j, in deinem Fall) mit seiner eigenen API.
  • Möchten Sie ändern die Ebene, auf der Sie einige Nachrichten gesendet werden, in die logging-framework, oder das Niveau, das zum filtern von Nachrichten in das Protokoll geschrieben?
  • Können Sie mir sagen, den Unterschied zwischen den beiden?
  • Mögliche Duplikate von die Einstellung Protokoll-level-Nachricht, die zur Laufzeit in slf4j
  • Es gibt eigentlich drei Möglichkeiten zum ändern der Protokollierungsstufe. (1) die änderung der Ebene aller logging ist die Ausgabe von einem appender, (2) ändern der level der logging-Ausgabe für ein Klasse-spezifische-logger und (3) eine änderung der Ebene der einzelnen logging-Anweisungen an bestimmten stellen im code. Mit SLF4j Sie nicht tun können, #3, aber Sie könnten in der log4j, wenn Sie logger.log("stuff", LEVEL); seit LEVEL eine variable. Letzteres wäre etwas, das nur in ganz bestimmten Situationen. So ist es wahrscheinlich Narendra gemeint ändern der Protokollierungsstufe pro Appen.
InformationsquelleAutor Narendra | 2012-11-18
Schreibe einen Kommentar