Skip to content

fix: ротация логов вместо бесконечного роста файла (#885)#932

Open
f4rceful wants to merge 1 commit into
Flowseal:mainfrom
f4rceful:fix/log-rotation-885
Open

fix: ротация логов вместо бесконечного роста файла (#885)#932
f4rceful wants to merge 1 commit into
Flowseal:mainfrom
f4rceful:fix/log-rotation-885

Conversation

@f4rceful

@f4rceful f4rceful commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Что сделано

  • Вынесена общая фабрика лог-хендлера build_log_handler() в utils/logging_setup.py, которая гарантирует backupCount >= 1 — то есть ротация всегда активна.
  • Подключена в обоих местах логирования: трей (utils/tray_common.py) и консольный режим (proxy/tg_ws_proxy.py).
  • Дефолт --log-backups поднят с 0 до 1.

Зачем

RotatingFileHandler ротирует файл только при backupCount >= 1: в CPython метод doRollover пропускает весь блок ротации, когда backupCount == 0 (if self.backupCount > 0:). В этом случае maxBytes молча игнорируется, и активный лог растёт без ограничений.

Трей жёстко задавал backupCount=0, а в консольном режиме --log-backups по умолчанию был 0 — поэтому заданный лимит размера не применялся никогда. Пользователи сообщали о логах, разрастающихся до сотен мегабайт (#885: 150 МБ, 600 МБ), при этом ручное ограничение размера не помогало, а перезапуск лишь временно обрезал файл.

RotatingFileHandler only rotates when backupCount >= 1: CPython's
doRollover skips the whole rotation block when backupCount == 0, so
maxBytes is silently ignored and the active log grows forever. The tray
hardcoded backupCount=0 and the CLI defaulted --log-backups to 0, so the
configured size limit never applied — users reported logs ballooning to
hundreds of MB (Flowseal#885).

Centralize handler creation in utils/logging_setup.build_log_handler,
which forces backupCount >= 1, and use it from both the tray and CLI log
paths. Default --log-backups is now 1.
@f4rceful f4rceful requested a review from Flowseal as a code owner June 1, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant