Я настроил регистратор, используя код ниже:
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(filename='application.log', mode='a+')
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
Всякий раз, когда я пытаюсь записать в журнал, используя следующий код:
logger.info("Application Started")
Я получаюследующая трассировка:
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.7/logging/__init__.py", line 985, in emit
stream.write(msg)
TypeError: a bytes-like object is required, not 'str'
Call stack:
File "/home/<user>/Code/<app_name>/src/<app_name>.py", line 48, in <module>
main()
File "/home/<user>/Code/<app_name>/src/<app_name>.py", line 42, in main
logger.info("Application Started")
Message: 'Application Started'
Arguments: ()
Я знаю, что с учетом вышеизложенного исключения можно ожидать, что файл будет открыт в двоичном режиме, но это не так, я открываю только в режиме «+».
Обновление Я попытался добавить encoding = 'utf-8' в обработчик файлов вместе с mode = 'a + t' и удалить имя файла с именованным параметром согласно рекомендациям вкомментарии ниже безрезультатно.