RotatingFileHandler сохраняет файл журнала открытым ⇐ Python

Программы на Python
Anonymous
RotatingFileHandler сохраняет файл журнала открытым

Сообщение Anonymous »

Я использую RotatingFileHandler для ротации файлов журналов в приложении Python:

Код: Выделить всё

    logger.addHandler(
RotatingFileHandler(
filename=args.log_file, mode="w", maxBytes=1_000_000, backupCount=4
)
)
Приложение работает в течение нескольких дней, создавая 4 файла журнала размером 1 М каждый. Я обнаружил, что последний файл все еще открыт в приложении:

Код: Выделить всё

[my@myhost monitoring *PROD*]$ sudo lsof -a +L1 /app
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
python3 44759 me    3w   REG  253,3 4346986722     0 50375001 /app/exploit/monitoring/monitoringd.log.4 (deleted)
Как видите, размер файла довольно большой — 4,3 ГБ. Чтобы вернуть диск, мне нужно перезапустить приложение.
У кого-нибудь возникала такая ошибка? Вы нашли решение этой проблемы?
Я использую Python 3.9.18.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -file-open

Вернуться в «Python»