detect-gui/core/logging.py
2024-11-21 11:39:52 +08:00

29 lines
1.0 KiB
Python

import logging
import os
from core.config import settings
def setup_logger():
log_dir = settings.logging.directory
log_level = settings.logging.level
os.makedirs(log_dir, exist_ok=True)
# 创建并配置全局 logger
logger_name = 'app'
_logger = logging.getLogger('app')
if len(_logger.handlers) == 0:
handler = logging.FileHandler(os.path.join(log_dir, f"{logger_name}.log"), encoding='utf-8')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
_logger.addHandler(handler)
if settings.get("logging.console", False):
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
_logger.addHandler(console_handler)
_logger.setLevel(getattr(logging, log_level.upper(), logging.DEBUG))
# 关闭日志传播,防止重复处理
_logger.propagate = False
return _logger
# 程序启动时调用一次 logger 配置
logger = setup_logger()