Python日志工具

文章介绍了如何使用Python的内置logging库和第三方库loguru来实现彩色日志,以及如何设置不同级别的日志颜色和控制台输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

彩色日志工具

日志可以颜色更加丰富,以区分不同的等级 可以使用自带的logging 系统标准库logging

import logging

# 定义全局日志开关
GLOBAL_LOG_ENABLE = True

# 全局日志等级
GLOBAL_LOG_LEVEL = logging.NOTSET

# 定义不同级别的日志颜色
COLORS = {
    'DEBUG': '\033[1;32m',  # 绿色
    'INFO': '\033[1;34m',  # 蓝色
    'WARNING': '\033[38;5;208m',  # 橙色
    'ERROR': '\033[1;31m',  # 红色
    'CRITICAL': '\033[1;35m',  # 紫色
}

def get_logger(name, log_level=logging.DEBUG):
    logger = logging.getLogger(name)

    if not GLOBAL_LOG_ENABLE:
        logger.disabled = True
        return logger

    if GLOBAL_LOG_LEVEL > logging.NOTSET:
        log_level = GLOBAL_LOG_LEVEL

    logger.setLevel(log_level)
    # 定义控制台输出的handler
    console_handler = logging.StreamHandler()
    console_handler.setLevel(log_level)

    # 定义不同级别的日志输出颜色
    for level, color in COLORS.items():
        logging.addLevelName(getattr(logging, level), f'{color}{level}{color}')

    # 定义输出格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s')
    # 定义控制台输出的格式
    console_handler.setFormatter(formatter)

    # 添加handler
    logger.addHandler(console_handler)

    return logger


if __name__ == '__main__':
    logger = get_logger(__name__)
    logger.critical("-------------------------------------------log_level=Default")
    logger.debug('debug message')
    logger.info('info message')
    logger.warning('warning message')
    logger.error('signal_error message')
    logger.critical('critical message')

    logger = get_logger("test", log_level=logging.ERROR)
    logger.critical("-------------------------------------------log_level=logging.ERROR")
    logger.debug('debug message')
    logger.info('info message')
    logger.warning('warning message')
    logger.error('signal_error message')
    logger.critical('critical message')
    print("print-----------------------------")

 三方日志库loguru

 安装:

pip install loguru

from loguru import logger
import sys

# 定义全局日志开关
GLOBAL_LOG_ENABLE = True

if GLOBAL_LOG_ENABLE:
    logger.enable("")
else:
    logger.disable("")

# 移除默认的日志处理器
logger.remove()
# 设置控制台日志级别
logger.add(sink=sys.stdout, level="DEBUG")

if __name__ == '__main__':
    # 示例日志记录
    logger.debug("这是一个调试日志")
    logger.info("这是一个信息日志")
    logger.warning("这是一个警告日志")
    logger.error("这是一个错误日志")
    logger.critical("这是一个严重错误日志")

    print("print-------------------------------------------")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值