MCPcopy Create free account
hub / github.com/Tron521/codex-console-temp / setup_logging

Function setup_logging

src/core/utils.py:38–87  ·  view source on GitHub ↗

配置日志系统 Args: log_level: 日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL) log_file: 日志文件路径,如果不指定则只输出到控制台 log_format: 日志格式 Returns: 根日志记录器

(
    log_level: str = "INFO",
    log_file: Optional[str] = None,
    log_format: str = "%(asctime)s [%(levelname)s] %(name)s: %(message)s"
)

Source from the content-addressed store, hash-verified

36
37
38def setup_logging(
39 log_level: str = "INFO",
40 log_file: Optional[str] = None,
41 log_format: str = "%(asctime)s [%(levelname)s] %(name)s: %(message)s"
42) -> logging.Logger:
43 """
44 配置日志系统
45
46 Args:
47 log_level: 日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
48 log_file: 日志文件路径,如果不指定则只输出到控制台
49 log_format: 日志格式
50
51 Returns:
52 根日志记录器
53 """
54 # 设置日志级别
55 numeric_level = getattr(logging, log_level.upper(), None)
56 if not isinstance(numeric_level, int):
57 numeric_level = logging.INFO
58
59 # 配置根日志记录器
60 root_logger = logging.getLogger()
61 root_logger.setLevel(numeric_level)
62
63 # 清除现有的处理器
64 root_logger.handlers.clear()
65
66 # 创建格式化器
67 formatter = ShanghaiTimeFormatter(log_format)
68
69 # 控制台处理器
70 console_handler = logging.StreamHandler(sys.stdout)
71 console_handler.setFormatter(formatter)
72 console_handler.setLevel(numeric_level)
73 root_logger.addHandler(console_handler)
74
75 # 文件处理器(如果指定了日志文件)
76 if log_file:
77 # 确保日志目录存在
78 log_dir = os.path.dirname(log_file)
79 if log_dir:
80 os.makedirs(log_dir, exist_ok=True)
81
82 file_handler = logging.FileHandler(log_file, encoding="utf-8")
83 file_handler.setFormatter(formatter)
84 file_handler.setLevel(numeric_level)
85 root_logger.addHandler(file_handler)
86
87 return root_logger
88
89
90def generate_password(length: int = DEFAULT_PASSWORD_LENGTH) -> str:

Callers 1

setup_applicationFunction · 0.90

Calls 1

Tested by

no test coverage detected