/
keorlov
/
aichess
Обзор
Документация
Войти
/
keorlov
/
aichess
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/logging_setup.py
44 строки
1 KB
Konstantin Orlov
wip
06 июн 2026, 13:19
06 июн 2026, 13:19
cb645b7
Код
Авторство
О чём код?
"""Error logging for engine crashes, timeouts, and illegal moves.""" import logging import os from datetime import datetime _error_logger = None def setup_error_logging(results_dir: str) -> logging.Logger: """Initialise the error log file (truncating any previous run). Each call to ``setup_error_logging`` opens ``errors.log`` in write mode so a fresh tournament starts with a clean log. Old runs are no longer appended silently. """ global _error_logger os.makedirs(results_dir, exist_ok=True) log_path = os.path.join(results_dir, "errors.log") logger = logging.getLogger("chess_errors") logger.setLevel(logging.INFO) logger.handlers.clear() fh = logging.FileHandler(log_path, mode="w", encoding="utf-8") fh.setLevel(logging.INFO) fmt = logging.Formatter( "[%(asctime)s] %(levelname)s: %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) fh.setFormatter(fmt) logger.addHandler(fh) _error_logger = logger return logger def get_error_logger() -> logging.Logger: global _error_logger if _error_logger is None: _error_logger = logging.getLogger("chess_errors") _error_logger.setLevel(logging.INFO) _error_logger.handlers.clear() _error_logger.addHandler(logging.NullHandler()) return _error_logger