Coverage for src/lilbee/cli/tui/log_routing.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-09-17 10:02 +0000

1"""TUI log file routing: rotating file handler that survives the stderr strip.""" 

2 

3from __future__ import annotations 

4 

5import logging 

6from pathlib import Path 

7 

8from lilbee.cli.log_routing import attach_rotating_file_handler 

9from lilbee.core.config import cfg 

10 

11_TUI_LOG_DIR_NAME = "logs" 

12_TUI_LOG_FILE_NAME = "tui.log" 

13_MAX_BYTES = 1_048_576 # 1 MiB 

14_BACKUP_COUNT = 5 

15 

16 

17def setup_tui_log_file() -> Path: 

18 """Install a RotatingFileHandler at ``cfg.data_root/logs/tui.log``. Idempotent.""" 

19 log_dir = cfg.data_root / _TUI_LOG_DIR_NAME 

20 log_dir.mkdir(parents=True, exist_ok=True) 

21 log_path = log_dir / _TUI_LOG_FILE_NAME 

22 attach_rotating_file_handler( 

23 log_path, 

24 max_bytes=_MAX_BYTES, 

25 backup_count=_BACKUP_COUNT, 

26 level=logging.WARNING, 

27 ) 

28 return log_path