为Python的日志输出添加漂亮的颜色和样式
在Python中,可以使用logging模块来实现日志输出。日志可用于调试代码、记录应用程序的状态和行为,以及追踪错误。为了让日志输出更加美观,可以使用第三方库colorlog来添加漂亮的颜色和样式。
首先,需要安装colorlog库:
$ pip install colorlog
下面是一个使用colorlog库的示例代码:
import logging
import colorlog
# 创建一个ColorLog的formatter
formatter = colorlog.ColoredFormatter(
"%(log_color)s%(asctime)s %(levelname)s %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
# 创建一个ColorLog的handler
handler = colorlog.StreamHandler()
# 设置handler的formatter
handler.setFormatter(formatter)
# 创建一个logger,并将handler添加到logger中
logger = colorlog.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
# 使用logger输出日志
logger.debug("这是一条debug级别的日志")
logger.info("这是一条info级别的日志")
logger.warning("这是一条warning级别的日志")
logger.error("这是一条error级别的日志")
logger.critical("这是一条critical级别的日志")
运行上述代码,输出的日志将带有不同颜色和样式:

可以看到,不同级别的日志使用不同的颜色进行了区分。Colorlog库默认将DEBUG级别设置为白色,INFO级别设置为绿色,WARNING级别设置为黄色,ERROR级别设置为红色,CRITICAL级别设置为红底白字。
Colorlog库还支持自定义颜色和样式。可以通过在formatter中使用特殊的格式化标记来自定义日志的颜色和样式。
以下是一些常用的颜色和样式的格式化标记:
- {log_color}: 日志的颜色
- {levelname}: 日志级别名称
- {asctime}: 日志的时间
- {message}: 日志的内容
以下是一些常用的颜色标记:
- {black}
- {red}
- {green}
- {yellow}
- {blue}
- {purple}
- {cyan}
- {white}
以下是一些常用的样式标记:
- {bold}
- {thin}
- {underline}
- {blink}
- {reverse}
下面是一个自定义颜色和样式的示例代码:
import logging
import colorlog
# 创建一个ColorLog的formatter,自定义颜色和样式
formatter = colorlog.ColoredFormatter(
"{cyan}{bold}%(asctime)s %(levelname)s{reset} %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
reset=True,
log_colors={
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bg_white',
},
)
# 创建一个ColorLog的handler
handler = colorlog.StreamHandler()
# 设置handler的formatter
handler.setFormatter(formatter)
# 创建一个logger,并将handler添加到logger中
logger = colorlog.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
# 使用logger输出日志
logger.debug("这是一条debug级别的日志")
logger.info("这是一条info级别的日志")
logger.warning("这是一条warning级别的日志")
logger.error("这是一条error级别的日志")
logger.critical("这是一条critical级别的日志")
运行上述代码,输出的日志将使用自定义的颜色和样式:

以上就是为Python的日志输出添加漂亮的颜色和样式的方法和示例。使用colorlog库可以让日志输出更加清晰和可读,方便调试和追踪错误。
