您当前的位置: 首页 >> 生活 > >> 正文

天天微头条丨Python 打印彩色日志

来源: 2023-01-01 23:45:40发布

我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的速度,可以更好的了解程序中发生的事情。本文分享一个技巧,可以让 Python 在控制台输出彩色的日志。

安装 coloredlogs

pipinstallcoloredlogs


【资料图】

使用

首先,和正常打印日志一样,我们创建一个 logger

logging.basicConfig()logger=logging.getLogger(name="mylogger")

然后,把 logger 安装到 coloredlogs:

coloredlogs.install(logger=logger)logger.propagate=False

logger.propagate = False确保 coloredlogs 不会将我们的日志事件传递给根 logger,这可以防止我们重复记录每个事件。

我们想为我们的控制台输出添加一些样式,可以在这里定义:

coloredFormatter=coloredlogs.ColoredFormatter(fmt="[%(name)s]%(asctime)s%(funcName)s%(lineno)-3d%(message)s",level_styles=dict(debug=dict(color="white"),info=dict(color="blue"),warning=dict(color="yellow",bright=True),error=dict(color="red",bold=True,bright=True),critical=dict(color="black",bold=True,background="red"),),field_styles=dict(name=dict(color="white"),asctime=dict(color="white"),funcName=dict(color="white"),lineno=dict(color="white"),))

接下来就和正常使用日志一样了,配置一个流处理器,让日志显示在控制台:

ch=logging.StreamHandler(stream=sys.stdout)ch.setFormatter(fmt=coloredFormatter)logger.addHandler(hdlr=ch)logger.setLevel(level=logging.DEBUG)

接下来就可以输入日志信息了:

logger.debug(msg="thisisadebugmessage")logger.info(msg="thisisaninfomessage")logger.warning(msg="thisisawarningmessage")logger.error(msg="thisisanerrormessage")logger.critical(msg="thisisacriticalmessage")

效果图如下:

完整代码如下:

importloggingimportcoloredlogsimportsys##配置loggerlogging.basicConfig()logger=logging.getLogger(name="mylogger")coloredlogs.install(logger=logger)logger.propagate=False##配置颜色coloredFormatter=coloredlogs.ColoredFormatter(fmt="[%(name)s]%(asctime)s%(funcName)s%(lineno)-3d%(message)s",level_styles=dict(debug=dict(color="white"),info=dict(color="blue"),warning=dict(color="yellow",bright=True),error=dict(color="red",bold=True,bright=True),critical=dict(color="black",bold=True,background="red"),),field_styles=dict(name=dict(color="white"),asctime=dict(color="white"),funcName=dict(color="white"),lineno=dict(color="white"),))##配置StreamHandlerch=logging.StreamHandler(stream=sys.stdout)ch.setFormatter(fmt=coloredFormatter)logger.addHandler(hdlr=ch)logger.setLevel(level=logging.DEBUG)##outputlogger.debug(msg="thisisadebugmessage")logger.info(msg="thisisaninfomessage")logger.warning(msg="thisisawarningmessage")logger.error(msg="thisisanerrormessage")logger.critical(msg="thisisacriticalmessage")

最后的话

本文分享了一种输出彩色日志的方法,感觉不错的话,请分享给身边的程序员们,祝编码愉快。

上一篇 下一篇
x
推荐阅读 更多

天天微头条丨Python 打印彩色日志

2023-01-01

2023年永康第一轮普惠消费券怎么领取?(附使用规则) 焦点信息

2023-01-01

焦点热文:豆瓣 9.5 !好看到令人心颤 !这才是中国式审美,中国式浪漫

2022-12-31

老年人感染后如何护理?如何看待“白肺”现象?专家解答|热点评

2022-12-30

每日讯息!非全日制博士生可以申请长沙毕业生租房补贴吗

2022-12-30

天天最新:南京浦口区新冠疫苗接种时间一览

2022-12-30

天天观焦点:16个行业获融资净买入 房地产行业获净买入最多

2022-12-30

今日纽盘货币行情走势展望:因日本央行宣布计划外购债操作 美元/日元小幅走低-报道

2022-12-29

世界快看点丨新冠阳性转阴多久之后可以打宫颈癌九价疫苗?

2022-12-29

天天最新:长四乙战极寒!成功发射高分十一号04星

2022-12-29