Периодически выполняемая задача выполняет некоторые действия, при которых могут возникнуть ошибки прав доступа / ошибки подключения к базе данных.
Хотя я регистрирую весь процесс на уровне отладки / информации в своей консоли, я хотел бы только регистрировать ошибки, используя обработчик файлов, в файл. Это достигается с помощью следующей настройки регистратора:
import os
import logging
from datetime import datetime
def configure_logging(name, level):
""" Configures the logging object to print messages to the console window
and save them into a log file.
"""
current_time = datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
logger = logging.getLogger(name)
logger.setLevel(getattr(logging, level))
# set the format of messages
formatter = logging.Formatter("%(name)s: %(asctime)s - %(levelname)s - %(message)s",
datefmt="%H:%M:%S")
# configure the log file handler
file_handler = logging.FileHandler(os.path.join(os.getcwd(),
"automation",
"logs",
f"{current_time}_{name}.log"),
mode='w', encoding='utf8')
file_handler.setLevel(logging.ERROR)
file_handler.setFormatter(formatter)
# configure the console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(getattr(logging, level))
console_handler.setFormatter(formatter)
# add handlers to logger object
logger.addHandler(file_handler)
logger.addHandler(console_handler)
return logger
Ошибки правильно записываются в указанный файл c. Однако соответствующий файл
os.path.join(os.getcwd(), "automation", "logs", f"{current_time}_{name}.log")
создается автоматически для каждого выполнения задачи, даже если ошибки не появляются.
Есть ли способ генерировать соответствующий файл журнала только при ошибках возникают такие, что мне не нужно вручную удалять пустые файлы журнала?