Python
Логирование с ротацией файлов
Настройка логгера с выводом в консоль и в файл, который не разрастается бесконечно.
Код
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("Приложение запущено")