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