Python logger日志模块封装 添加log_colors配置输出颜色
  rBYdaoQFuE7Q 2023年11月02日 54 0

logger日志封装

# -*- coding:utf-8 -*-
# @Time : 16/06/2023 2:42 pm
# @Author: Azure
# @File: logger_key.py

import os
import time
import logging
import colorlog
from config.path_config import LOG_DIR


def logger():
    # 定义不同日志级别的颜色配置
    log_colors_config = {
        'DEBUG': 'cyan',
        'INFO': 'green',
        'WARNING': 'yellow',
        'ERROR': 'red',
        'CRITICAL': 'bold_red',
    }

    # 创建名logger对象
    logger = logging.getLogger('CSP')

    # 设置日志级别和logger默认级别
    log_level = logging.DEBUG
    logger.setLevel(log_level)

    # 设置日志格式化字符串
    log_format_file = '[%(asctime)s] [CSP] [%(filename)s -> %(funcName)s line:%(lineno)d] [%(levelname)s]: %(message)s'
    log_format_console = '%(log_color)s[%(asctime)s] [CSP] [%(filename)s -> %(funcName)s line:%(lineno)d] [%(levelname)s]: %(message)s'

    # 创建控制台日志处理程序
    console_handler = logging.StreamHandler()
    console_handler.setLevel(log_level)  # 设置控制台日志处理程序的日志级别
    console_formatter = colorlog.ColoredFormatter(fmt=log_format_console, datefmt='%Y-%m-%d %H:%M:%S',
                                                  log_colors=log_colors_config)  # 创建彩色控制台日志格式化器
    console_handler.setFormatter(console_formatter)

    # 创建文件日志处理程序
    log_file = os.path.join(LOG_DIR, f"test_log_{time.strftime('%Y-%m-%d_%H-%M')}.log")
    file_handler = logging.FileHandler(log_file, mode='a', encoding="UTF-8-sig")  # 文件日志处理程序
    file_handler.setLevel(log_level)  # 设置文件日志处理程序的日志级别
    file_formatter = logging.Formatter(fmt=log_format_file, datefmt='%Y-%m-%d %H:%M:%S')  # 创建文件日志格式化器
    file_handler.setFormatter(file_formatter)  # 设置文件日志处理程序的格式化器

    if not logger.handlers:  # 如果logger没有已添加的处理程序
        logger.addHandler(console_handler)  # 添加控制台日志处理程序
        logger.addHandler(file_handler)  # 添加文件日志处理程序

    return logger  # 返回配置好的logger对象


if __name__ == '__main__':
    log = logger()


    def pr():
        log.debug('哈哈哈')
        log.info('哈哈哈')
        log.warning('哈哈哈')
        log.error('哈哈哈')


    pr()
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
rBYdaoQFuE7Q
最新推荐 更多