Ist es möglich, Python Logging-Nachrichten, die INFO oder DEBUG sind, zu stdout und WARNING oder größer gehen, um stderr zu gehen?Python Logging Split zwischen stdout und stderr
11
A
Antwort
-1
Ich dachte, das würde helfen: Handler.setLevel(lvl)
Der Schwellenwert für diese Handler lvl Sets. Das Protokollieren von Nachrichten, die weniger streng als lvl sind, wird ignoriert. Wenn ein Handler erstellt wird, wird der Level auf NOTSET gesetzt (wodurch alle Nachrichten verarbeitet werden).
Aber jetzt sehe ich, dass es nicht tun, was würden Sie wollen, (Split-INFO/DEBUG von WARNING/ERROR)
aber sagen, dass Sie könnte einen benutzerdefinierten Handler schreiben (eine Klasse logging.StreamHandler
zum Beispiel erstreckt) und überschreiben Sie die Handler.handle()
Methode.
30
Dies scheint zu tun, was ich will:
#!/usr/bin/python
import sys
import logging
class InfoFilter(logging.Filter):
def filter(self, rec):
return rec.levelno in (logging.DEBUG, logging.INFO)
logger = logging.getLogger('__name__')
logger.setLevel(logging.DEBUG)
h1 = logging.StreamHandler(sys.stdout)
h1.setLevel(logging.DEBUG)
h1.addFilter(InfoFilter())
h2 = logging.StreamHandler()
h2.setLevel(logging.WARNING)
logger.addHandler(h1)
logger.addHandler(h2)
Verwandte Themen
- 1. ABAP Stdout und Stderr
- 2. Speichern Sie stdout, stderr und stdout + stderr synchron
- 3. Piping popen stderr und stdout
- 4. paramiko kombinieren stdout und stderr
- 5. Apache Spark Stderr und Stdout
- 6. vim filter und stdout/stderr
- 7. Capture stderr von Python Subprozess.Popen (Befehl, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
- 8. Unterdrücken stdout/stderr Drucken von Python-Funktionen
- 9. Muting stdout und stderr während Mokka-Tests
- 10. LLVM stdin/stdout/stderr
- 11. über stdout/stderr Umleitungen
- 12. stderr Umleitung zu stdout
- 13. Dupliziere stdout zu stderr
- 14. Wie Umleitung stdout und stderr Logger in Python
- 15. Protokollierung und/oder stdout/stderr im Python-Daemon pflegen
- 16. Piping sowohl stdout und stderr in bash?
- 17. Ruby synchronisierte Ausgabe von $ stdout und $ stderr
- 18. Redirect STDOUT und STDERR zu Datei "> &"
- 19. stdout und stderr nach SIGPIPE wiederherzustellen
- 20. Redirect stdout und stderr zu Funktion
- 21. Wiederherstellen von stdout und stderr Standardwert
- 22. Protokollierung stderr und stdout mit log4j
- 23. Capturing stderr, aber nicht stdout
- 24. redirect stdout/stderr in C
- 25. Wie Umleitung Child-Prozess stdout/stderr auf den Hauptprozess stdout/stderr in Java?
- 26. Was ist der Unterschied zwischen Fehler, stderr, stdout im Knoten
- 27. Wie stdout und stderr von csh-Skript umleiten
- 28. Wie erfasse ich Aufforderungen in stdout/stderr?
- 29. Wie kann INFO und DEBUG Logging-Nachricht zu stdout und höhere Ebene Nachricht an stderr gesendet werden
- 30. Wie stdout und stderr child_process in Gulp verwenden
Dies ist nicht genug WARNUNG Anschlag * bis * Nachrichten an stdout angemeldet sein * noch *. –
Ein Filter wäre wahrscheinlich besser. – glglgl
Richtig, ich habe es nach dem Posten meiner Antwort bemerkt. Jetzt behoben. –