У меня проблема с регистратором. Я создаю объект регистратора с помощью addhandler и записываю все журналы в один файл. Я мог без проблем просматривать журналы из разных модулей в один и тот же файл, когда все было хорошо. Но я мог видеть только журналы destruct-or ( del ), когда моя программа завершается с ошибками. Как мне исправить эту ошибку? Ниже приведен фрагмент кода, который я использую для создания объекта регистратора:
test_logger = logging.getLogger(tag)
test_logger.setLevel(logging.getLevelName(level))
formatter = logging.Formatter("%(asctime)s - %(name)s - %(message)s")
test_log_file = os.path.join(path, tag + ".log")
log_handler = logging.FileHandler(test_log_file, "w")
log_handler.setFormatter(formatter)
test_logger.addHandler(log_handler)
передача этого объекта всем другим модулям, например:
class examClass:
def __init__(self, logger_tag):
self.name = 'logger'
self.logger = logging.getLogger(logger_tag + "." + self.name)
self.logger.info("Created an instance of " + self.name)
def __del__(self):
class_name = self.__class__.__name__
self.logger.info("%s destroyed" % class_name)
Итак, при запуске моей программы правильно, я мог видеть журналы следующим образом (это всего лишь пример): Создан экземпляр журнала excClass уничтожен
Но в случае, если моя программа завершается с ошибками, такими как исключения списка, исключения словаря или программа завершается принудительно , я мог видеть только удаленные журналы (я потерял все остальные журналы, которые были зарегистрированы до ошибки), как показано ниже: excClass уничтожен
Благодарю за любую поддержку.