проблема с логированием в python - PullRequest
0 голосов
/ 05 августа 2020

У меня проблема с регистратором. Я создаю объект регистратора с помощью 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 уничтожен

Благодарю за любую поддержку.

...