python 打印高亮-日志输出颜色控制

一、语法

1.实现过程

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。控制字符颜色的转义序列是以ESC开头,即用\033来完成

2.书写过程

开头部分: \033[显示方式;前景色;背景色m
结尾部分: \033[0m

  • 注意:
    开头部分的三个参数:
  • (1)显示方式,前景色,背景色是可选参数,可以只写其中的某一个;
  • (2)另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。
  • (3)结尾部分其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。

3.参数

显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(紫色)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(紫色)、46(青色)、47(白色)

字背景颜色范围: 40--49 字颜色: 30--39
40(黑色)30(黑色)
41(红色)31(红色)
42(绿色)32(绿色)
43(黄色)33(黄色)
44(蓝色)34(蓝色)
45(紫色)35(紫色)
46(青色)36(青色)
47(白色)37(白色)

4.常见开头格式

\033[0m 默认字体正常显示,不高亮
\033[32;0m 红色字体正常显示
\033[1;32;40m 显示方式: 高亮 字体颜色:绿色 背景色:黑色
\033[0;31;46m 显示方式: 正常 字体颜色:红色 背景色:青色

二.显示示例

# 高亮显示输出

s = "hello, world"

# 默认字体输出:
print("默认输出:",'\033[0m%s\033[0m' % s)
print("添加背景:",'\033[0;47m%s\033[0m' % s)

# 高亮显示:
print('\033[1;31;40m%s\033[0m' % s)
print('\033[1;32;40m%s\033[0m' % s)
print('\033[1;33;40m%s\033[0m' % s)
print('\033[1;34;40m%s\033[0m' % s)
print('\033[1;35;40m%s\033[0m' % s)
print('\033[1;36;40m%s\033[0m' % s)
print('\033[1;37;40m%s\033[0m' % s)

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过给 `logging` 模块的输出添加颜色来更好地区分不同级别的日志。具体方法是创建一个自定义的 `Formatter` 类,并在其中添加 ANSI 转义序列来修改文本颜色。 以下是一个示例代码: ```python import logging class ColoredFormatter(logging.Formatter): """ 自定义日志格式,添加颜色 """ def format(self, record): if record.levelno == logging.DEBUG: # 绿色字体 color_start = '\033[32m' elif record.levelno == logging.INFO: # 默认字体颜色 color_start = '' elif record.levelno == logging.WARNING: # 黄色字体 color_start = '\033[33m' elif record.levelno == logging.ERROR: # 红色字体 color_start = '\033[31m' elif record.levelno == logging.CRITICAL: # 紫色字体 color_start = '\033[35m' else: color_start = '' color_end = '\033[0m' self._style._fmt = color_start + self._style._fmt + color_end return super().format(record) # 创建 logger logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # 创建 StreamHandler,并添加到 logger 中 handler = logging.StreamHandler() handler.setLevel(logging.DEBUG) # 创建 Formatter,并添加到 handler 中 formatter = ColoredFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) # 添加 handler 到 logger 中 logger.addHandler(handler) # 输出不同级别的日志 logger.debug('This is a debug message') logger.info('This is an info message') logger.warning('This is a warning message') logger.error('This is an error message') logger.critical('This is a critical message') ``` 在这个例子中,我们创建了一个自定义的 `Formatter` 类 `ColoredFormatter`,并在其中根据不同的日志级别添加了不同的颜色。然后将这个 `Formatter` 添加到 `StreamHandler` 中,并将其添加到 logger 中,从而实现了对输出日志颜色控制。 注意,为了保证每个日志输出颜色都是正确的,我们每次都需要在 `format` 方法中重新设置 `_style._fmt`。如果不这么做,可能会出现某些日志输出颜色不正确的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值