Ich verwende Yaml, um die Protokollierung für meine Python-Anwendung zu konfigurieren.Warum meldet sich INFO an? DEBUG-Protokolle
version: 1
disable_existing_loggers: False
formatters:
standard:
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: standard
stream: ext://sys.stdout
info_file_handler:
class: logging.handlers.RotatingFileHandler
level: INFO
formatter: standard
filename: info.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
error_file_handler:
class: logging.handlers.RotatingFileHandler
level: ERROR
formatter: standard
filename: errors.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
debug_file_handler:
class: logging.handlers.RotatingFileHandler
level: DEBUG
formatter: standard
filename: debug.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
loggers:
db_ops:
level: DEBUG
handlers: [info_file_handler, error_file_handler, debug_file_handler]
propagate: true
In Modul db_ops
verwende ich sowohl logger.info
und logger.debug
für verschiedene Ebenen der Protokollierung. Wenn ich die App ausführe, während INFO
Ausgabe an info.log ausgegeben wurde, werden sowohl INFO
als auch DEBUG
Nachrichten in debug.log ausgegeben.
Was ist der richtige Weg, um das Protokoll zu verschiedenen Dateien auf der Ebene zu trennen?
also wäre es besser, alle Level-Ausgabe auf die gleiche Datei zu haben. Auf diese Weise erhalten Sie keine redundanten Protokolle in verschiedenen Dateien? – ddd
Es hängt wirklich davon ab, wie Sie die Protokollierung verwenden. Es ist ein übliches Muster, DEBUG-Level für lokale Entwicklung zu aktivieren, aber INFO oder höher in der Produktion eingestellt zu haben, um die Rauschpegel zu reduzieren und nur wichtige Logs zu haben (normalerweise Probleme). In anderen Fällen können jedoch Ihre Protokollierungsanforderungen abweichen. Beispielsweise möchten Sie möglicherweise, dass Fehler an stderr und reguläre Ausgabe an stdout gesendet werden. Es gibt keine strengen Regeln. In Ihrem Fall klingt es so, als könnten Sie in Ordnung kommen, indem Sie alles auf dem gleichen Ziel anmelden. – m1keil