123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import logging
- import os
- import colorlog
- # 创建日志记录器
- log = logging.getLogger(__name__)
- log.setLevel(logging.INFO)
- project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
- log_dir = os.path.join(project_root, 'logs')
- os.makedirs(log_dir, exist_ok=True) # 自动创建目录(如果不存在)
- # 创建文件处理器
- file_handler = logging.FileHandler(f'{log_dir}/cross.log', encoding='utf-8')
- file_handler.setLevel(logging.INFO)
- # 创建控制台处理器
- console_handler = logging.StreamHandler()
- console_handler.setLevel(logging.INFO)
- # 控制台处理器(带颜色)
- console_handler = colorlog.StreamHandler()
- console_handler.setLevel(logging.DEBUG)
- # 文件格式器
- plain_formatter = logging.Formatter(
- '%(asctime)s - %(name)s:%(lineno)d - %(levelname)s - %(message)s',
- datefmt='%Y-%m-%d %H:%M:%S'
- )
- # 控制台颜色格式器
- color_formatter = colorlog.ColoredFormatter(
- '%(log_color)s%(asctime)s - %(name)s:%(lineno)d - %(levelname)s - %(message)s',
- datefmt='%Y-%m-%d %H:%M:%S',
- log_colors={
- 'DEBUG': 'cyan',
- 'INFO': 'green',
- 'WARNING': 'yellow',
- 'ERROR': 'red',
- 'CRITICAL': 'red,bg_white',
- }
- )
- # 应用格式器
- file_handler.setFormatter(plain_formatter)
- console_handler.setFormatter(color_formatter)
- # 添加处理器到记录器
- log.addHandler(file_handler)
- log.addHandler(console_handler)
|