| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- 日志工具
- """
- import logging
- import sys
- from typing import Optional
- def setup_logger(
- name: str = "FineTuneX",
- level: int = logging.INFO,
- log_file: Optional[str] = None,
- ) -> logging.Logger:
- """
- 设置日志记录器
-
- Args:
- name: 记录器名称
- level: 日志级别
- log_file: 日志文件路径(可选)
-
- Returns:
- 日志记录器
- """
- logger = logging.getLogger(name)
- logger.setLevel(level)
-
- # 清除现有的 handlers
- logger.handlers = []
-
- # 创建 formatter
- formatter = logging.Formatter(
- "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
- datefmt="%Y-%m-%d %H:%M:%S",
- )
-
- # 控制台 handler
- console_handler = logging.StreamHandler(sys.stdout)
- console_handler.setLevel(level)
- console_handler.setFormatter(formatter)
- logger.addHandler(console_handler)
-
- # 文件 handler(可选)
- if log_file:
- file_handler = logging.FileHandler(log_file, encoding="utf-8")
- file_handler.setLevel(level)
- file_handler.setFormatter(formatter)
- logger.addHandler(file_handler)
-
- return logger
|