Вынесена общая фабрика лог-хендлера 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 МБ), при этом ручное ограничение размера не помогало, а перезапуск лишь временно обрезал файл.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Flowseal/tg-ws-proxy/pull/932
**Author:** [@f4rceful](https://github.com/f4rceful)
**Created:** 6/1/2026
**Status:** ✅ Merged
**Merged:** 6/17/2026
**Merged by:** [@Flowseal](https://github.com/Flowseal)
**Base:** `main` ← **Head:** `fix/log-rotation-885`
---
### 📝 Commits (1)
- [`43dfd70`](https://github.com/Flowseal/tg-ws-proxy/commit/43dfd70b0a2a29cfbebb641e361bb459d684cf0a) fix: rotate log files instead of growing without bound (#885)
### 📊 Changes
**3 files changed** (+48 additions, -12 deletions)
<details>
<summary>View changed files</summary>
📝 `proxy/tg_ws_proxy.py` (+7 -6)
➕ `utils/logging_setup.py` (+39 -0)
📝 `utils/tray_common.py` (+2 -6)
</details>
### 📄 Description
## Что сделано
- Вынесена общая фабрика лог-хендлера `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 МБ), при этом ручное ограничение размера не помогало, а перезапуск лишь временно обрезал файл.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot
changed title from [PR #932] [MERGED] fix: ротация логов вместо бесконечного роста файла (#885) to [PR #932] fix: ротация логов вместо бесконечного роста файла (#885)2026-07-20 04:11:12 +03:00
mirror-bot
changed title from [PR #932] fix: ротация логов вместо бесконечного роста файла (#885) to [PR #932] [MERGED] fix: ротация логов вместо бесконечного роста файла (#885)2026-07-20 23:14:59 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/932
Author: @f4rceful
Created: 6/1/2026
Status: ✅ Merged
Merged: 6/17/2026
Merged by: @Flowseal
Base:
main← Head:fix/log-rotation-885📝 Commits (1)
43dfd70fix: rotate log files instead of growing without bound (#885)📊 Changes
3 files changed (+48 additions, -12 deletions)
View changed files
📝
proxy/tg_ws_proxy.py(+7 -6)➕
utils/logging_setup.py(+39 -0)📝
utils/tray_common.py(+2 -6)📄 Description
Что сделано
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 МБ), при этом ручное ограничение размера не помогало, а перезапуск лишь временно обрезал файл.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
[PR #932] [MERGED] fix: ротация логов вместо бесконечного роста файла (#885)to [PR #932] fix: ротация логов вместо бесконечного роста файла (#885)[PR #932] fix: ротация логов вместо бесконечного роста файла (#885)to [PR #932] [MERGED] fix: ротация логов вместо бесконечного роста файла (#885)