接上一篇
https://blog.csdn.net/HaoZiHuang/article/details/127127752
继承 StreamHandler 写一个带颜色的 Handler,并通过 addHandler 添加到 logger 中
自定义 StreamHandler 只需要重写 emit 方法
import logging
import sys
# 定义日志颜色
class Color:
BLUE = "\033[94m"
GREEN = "\033[92m"
YELLOW = "\033[93m"
RED = "\033[91m"
END = "\033[0m"
# 自定义日志处理器
class ColorHandler(logging.StreamHandler):
def emit(self, record):
log_entry = self.format(record)
if record.levelno == logging.DEBUG:
log_entry = f"{Color.BLUE}{log_entry}{Color.BLUE}"
elif record.levelno == logging.INFO:
log_entry = f"{Color.GREEN}{log_entry}{Color.END}"
elif record.levelno == logging.WARNING:
log_entry = f"{Color.YELLOW}{log_entry}{Color.END}"
elif record.levelno == logging.ERROR:
log_entry = f"{Color.RED}{log_entry}{Color.END}"
sys.stdout.write(log_entry + "\n")
sys.stdout.flush()
# 配置日志
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 添加自定义处理器
color_handler = ColorHandler()
color_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("[%(asctime)s] - %(levelname)s - %(message)s")
color_handler.setFormatter(formatter)
logger.addHandler(color_handler)
# 输出彩色日志
logger.debug("伞兵一号")
logger.info("还有17张牌你能秒我?")
logger.warning("你能秒杀我?")
logger.error("你今天能17张牌......")
代码拿来即用,效果展示:

4351

被折叠的 条评论
为什么被折叠?



