все Python 3loggingпонятие
logging.FileHandler
обработчики
Обработчик, записывающий логи в файл. Поддерживает режимы 'a' (дополнять) и 'w' (перезаписывать), а также кодировку.
Синтаксис
handler = logging.FileHandler(filename, mode='a', encoding=None, delay=False)
До Python 3.15 без encoding='utf-8' файл пишется в кодировке локали (на Windows это обычно cp1251): в другой системе лог покажется кракозябрами, а любой символ вне этой кодировки записан не будет — logging напечатает ошибку в stderr и потеряет строку. Режим 'w' обрезает лог при каждом запуске программы, так что для истории нужен 'a' (он и стоит по умолчанию). Файл открывается сразу при создании обработчика (если не задан delay=True) и растёт без ограничений — за размером следят RotatingFileHandler и TimedRotatingFileHandler из logging.handlers.
Примеры
import logging
logger = logging.getLogger('myapp')
fh = logging.FileHandler('app.log', mode='a', encoding='utf-8')
fh.setFormatter(logging.Formatter('%(asctime)s %(message)s'))
logger.addHandler(fh)
logger.warning('Записано в файл')
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности