Python

Логирование с ротацией файлов

Algonexys · 07.08.2026 · 👁 0

Настройка логгера с выводом в консоль и в файл, который не разрастается бесконечно.

Код

import logging
from logging.handlers import RotatingFileHandler


def setup_logging(logfile="app.log", level=logging.INFO):
    formatter = logging.Formatter(
        "%(asctime)s %(levelname)-8s %(name)s: %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    )

    file_handler = RotatingFileHandler(
        logfile, maxBytes=5 * 1024 * 1024, backupCount=5, encoding="utf-8"
    )
    file_handler.setFormatter(formatter)

    console = logging.StreamHandler()
    console.setFormatter(formatter)

    root = logging.getLogger()
    root.setLevel(level)
    root.handlers = [file_handler, console]


setup_logging()
logging.getLogger(__name__).info("Приложение запущено")