8487f6eadf
- 在 logging.py 中添加 setup_logging 包装函数 - 导出 logger 全局实例供其他模块使用 - 修复配置测试导入错误 初始化阶段所有测试现已通过 Assisted-by: Kiro AI <kiro@cursor.com>
35 lines
876 B
Python
35 lines
876 B
Python
import logging
|
|
|
|
import structlog
|
|
|
|
|
|
def configure_logging(log_level: str = "INFO") -> None:
|
|
level = getattr(logging, log_level.upper(), logging.INFO)
|
|
|
|
structlog.configure(
|
|
processors=[
|
|
structlog.processors.TimeStamper(fmt="iso"),
|
|
structlog.processors.add_log_level,
|
|
structlog.processors.JSONRenderer(ensure_ascii=False),
|
|
],
|
|
wrapper_class=structlog.make_filtering_bound_logger(level),
|
|
cache_logger_on_first_use=True,
|
|
)
|
|
|
|
|
|
def setup_logging(log_level: str = "INFO") -> structlog.stdlib.BoundLogger:
|
|
"""
|
|
配置并返回 structlog logger 实例
|
|
|
|
Args:
|
|
log_level: 日志级别,默认 INFO
|
|
|
|
Returns:
|
|
配置好的 logger 实例
|
|
"""
|
|
configure_logging(log_level)
|
|
return structlog.get_logger()
|
|
|
|
|
|
# 全局 logger 实例
|
|
logger = structlog.get_logger() |