Warum werden in der Info -Protokollierungsdatei Fehlerprotokollierungsmeldungen reflektiert?Python

Python-Programme
Anonymous
 Warum werden in der Info -Protokollierungsdatei Fehlerprotokollierungsmeldungen reflektiert?

Post by Anonymous »

Ich wollte in der Python -Protokollierung Informationen und Fehlerdatei separat drucken. Wenn ich Fehlerstufe verwende, schreibt es in beide stufe definierten Dateien.

Code: Select all

{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"log_Formatter": {
"format": "%(asctime)s - %(name)s -  %(levelname)s - %(message)s"
}

},
"handlers": {
"InfoHandler": {
"class": "logging.handlers.RotatingFileHandler",
"filename": "app_info.log",
"level": "INFO",
"formatter": "log_Formatter",
"maxBytes": 10485760,
"backupCount": 5,
"encoding": "utf-8"
},
"ErrorHandler": {
"class": "logging.handlers.RotatingFileHandler",
"filename": "app_error.log",
"level": "ERROR",
"formatter": "log_Formatter",
"maxBytes": 10485760,
"backupCount": 5,
"encoding": "utf-8"
},
"ConsoleHandler": {
"class": "logging.StreamHandler",
"level": "INFO",
"formatter": "log_Formatter",
"stream": "ext://sys.stdout"
}
},
"loggers": {
"app_ERROR": {
"handlers": [
"ConsoleHandler",
"ErrorHandler"
],
"level": "ERROR",
"propagate": "no"
} ,
"app_INFO": {
"handlers": [
"ConsoleHandler",
"InfoHandler"
],
"level": "INFO",
"propagate": "no"
}
},
"root": {
"level": "DEBUG",
"handlers": [
"ConsoleHandler",
"InfoHandler"
]
}
}
< /code>
app_logger.py:
import logging
import logging.config
import json

LOG_FILE = "log_config.json"

appl_logger = None

def initialize(name):
global appl_logger
with open(LOG_FILE, 'r') as f:
log_file_contents = json.load(f)
if log_file_contents is None:
raise ValueError("initialize log json file is not set")
logging.config.dictConfig(log_file_contents)
appl_logger = logging.getLogger(name)
return appl_logger
< /code>
In Python ausführen: < /p>
>>> import app_logger
>>> log = app_logger.initialize("app_ERROR")
>>> log.error("this is test2")
2025-09-20 18:09:32,044 - app_ERROR -  ERROR - this is test2
2025-09-20 18:09:32,044 - app_ERROR -  ERROR - this is test2
< /code>
app_info.log (Ich habe nicht erwartet, dass diese Datei geschrieben wird, da der Protokoll für "app_error" festgelegt ist): < /p>
2025-09-20 18:19:56,436 - app_ERROR -  ERROR - this is test2
< /code>
app_error.log:
2025-09-20 18:19:56,436 - app_ERROR -  ERROR - this is test2
Wie kann ich die Protokollierung so konfigurieren, dass Fehlermeldungen nicht in der Info -Protokolldatei angezeigt werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post