wangzhibo
2025-07-27 e0fb1b468f7d607ff78232d250271c46f603c3a9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import logging
import os
from datetime import datetime
 
from auto_media_publisher.config.conf_base import LOG_DIR,DEBUG
 
def get_logger(platform, user):
    logger = logging.getLogger(f"{platform}_{user}")
    if not logger.handlers:
        logger.setLevel(logging.DEBUG)  # 设置最低级别为 DEBUG,交由 handler 控制输出
 
        date_str = datetime.now().strftime('%Y-%m-%d')
        base_filename = f"{platform}_{user}_{date_str}"
        
        normal_log_file = os.path.join(LOG_DIR, f"{base_filename}.log")
        error_log_file = os.path.join(LOG_DIR, f"error_{base_filename}.log")
 
        # 日志格式
        formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s')
 
        # 普通日志(INFO 以下,包括 INFO、DEBUG、WARNING)
        info_handler = logging.FileHandler(normal_log_file, encoding='utf-8')
        info_handler.setLevel(logging.DEBUG)
        info_handler.addFilter(lambda record: record.levelno < logging.ERROR)
        info_handler.setFormatter(formatter)
        logger.addHandler(info_handler)
 
        # 错误日志(ERROR 及以上)
        error_handler = logging.FileHandler(error_log_file, encoding='utf-8')
        error_handler.setLevel(logging.ERROR)
        error_handler.setFormatter(formatter)
        logger.addHandler(error_handler)
 
        # 控制台输出(可选,仅 DEBUG 模式下输出全部)
        if DEBUG:
            console_handler = logging.StreamHandler()
            console_formatter = logging.Formatter('[%(levelname)s] %(message)s')
            console_handler.setFormatter(console_formatter)
            console_handler.setLevel(logging.DEBUG)
            logger.addHandler(console_handler)
 
    return logger
 
 
PLATFORM_LOGGER = get_logger("platform","admin")