| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """日志配置"""
- import logging
- import sys
- from pathlib import Path
- from config import Config
- def setup_logger(name: str = "learning_agent") -> logging.Logger:
- """
- 配置并返回日志记录器
- Args:
- name: 日志记录器名称
- Returns:
- 配置好的日志记录器
- """
- logger = logging.getLogger(name)
- logger.setLevel(getattr(logging, Config.LOG_LEVEL.upper()))
- # 避免重复添加 handler
- if logger.handlers:
- return logger
- # 控制台 handler
- console_handler = logging.StreamHandler(sys.stdout)
- console_handler.setLevel(logging.INFO)
- # 文件 handler
- log_dir = Path.home() / ".learningAgent" / "logs"
- log_dir.mkdir(parents=True, exist_ok=True)
- file_handler = logging.FileHandler(log_dir / "app.log")
- file_handler.setLevel(logging.DEBUG)
- # 格式化
- formatter = logging.Formatter(
- "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
- datefmt="%Y-%m-%d %H:%M:%S",
- )
- console_handler.setFormatter(formatter)
- file_handler.setFormatter(formatter)
- logger.addHandler(console_handler)
- logger.addHandler(file_handler)
- return logger
|