Использование двух объектов logger в одном и том же классе вызывает AttributeError: объект 'NoneType' не имеет атрибута 'write' в файле журнала __init__.py - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть 2 отдельных файла журнала в классе: один из них - перенаправление сообщений stderr в файл журнала при импорте модуля keras, вызванного внутренними файлами keras. Другой способ - просто отслеживать код. Я использую их в некоторых классах, таких как:

stderr_logger = logging.getLogger('STDERR')
sl = StreamToLogger(stderr_logger, logging.ERROR)
sys.stderr = sl

from keras import backend

log = logging.getLogger(__name__)
logger = papyrus_logging(log)

def method():
   logger.write ("something")

Однако у меня есть AttributeError: у объекта 'NoneType' нет атрибута 'write' error в моих файлах StreamToLogger, например:

20200423:ERROR:STDERR:--- Logging error ---
20200423:ERROR:STDERR:Traceback (most recent call last):
20200423:ERROR:STDERR:  File "d:\Python\lib\logging\__init__.py", line 996, in emit
20200423:ERROR:STDERR:    stream.write(msg)
20200423:ERROR:STDERR:AttributeError: 'NoneType' object has no attribute 'write'

Я читал в некоторых блогах, что поток может быть Нет, когда два объекта журнала блокируют друг друга. Я не понимаю, как они могут блокировать друг друга, даже если я не вызывал один объект регистратора в другом регистраторе?

...