环球今热点:Python 打印彩色日志

  2023-01-02 22:44:37

我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的速度,可以更好的了解程序中发生的事情。本文分享一个技巧,可以让 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")

最后的话

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

相关新闻

猜你喜欢

全球热消息:天府旅游名牌日历海报|在这里,住进云端里

2023-01-02

世界热消息:怎么区分熟茶 生茶和熟茶要怎么区分

2023-01-02

当前热文:中国第二大镍钴矿产出首批镍钴精矿粉

2023-01-01

CFTC商品持仓解读:黄金净多头头寸创最近逾六个月新高

2022-12-31

今头条!余文杰任德阳市副市长、市公安局局长

2022-12-30

天天百事通!湖南攸县一越狱后潜逃29年罪犯落网,律师:收监后将数罪并罚,重新计算剩余刑期

2022-12-30

元旦假期将至 武汉交警发布最新出行提示

2022-12-30

爱茉莉太平洋“AMORE能量青年”公益项目深度赋能中国青年

2022-12-30

【环球报资讯】华夏理财、气候债券倡议组织与香港中文大学(深圳)联合发布《中国转型金融研究报告:债务工具支持电力行业低碳转型》

2022-12-30

旅日大熊猫“永明”和它的双胞胎女儿将于明年2月22日回国

2022-12-29

世界热点评!中仑新材吹响绿色冲锋号,新型膜材推动胶带环保升级

2022-12-29

【天天热闻】宜人贷借款逾期33年拖欠多久上征信

2022-12-29

当前最新:阿联酋发展航天事业的重要伙伴

2022-12-29

春立医疗(688236)12月28日主力资金净买入42.09万元

2022-12-29

天天滚动:萝卜干没晒好下雨了怎么保存?

2022-12-29

环球微资讯!2023年元旦常州武进博物馆开放公告

2022-12-28

天天播报:长沙第三批防疫健康包预约领取指南(附入口)

2022-12-28

【独家焦点】双探花77分绿军击落火箭3连胜 格林28分波特22+9

2022-12-28

世界热头条丨我市7个站点榜上有名

2022-12-28

世界观速讯丨华兰生物(002007.SZ):获批在襄城县、杞县和邓州市设置单采血浆站

2022-12-27

海伦钢琴(300329)12月27日主力资金净买入760.39万元

2022-12-27

速递!迅安科技(834950.BJ)开启申购,发行价格13元/股

2022-12-27

国家卫健委:制定疫情信息报告和公布方案,逐步调整疫情发布频次和内容

2022-12-26

环球速看:塞尔维亚运氨列车脱轨致51人中毒,事发地进入紧急状态

2022-12-26

播报:浙江嘉善建设社区巡回医疗点——就近就医 省时省力

2022-12-26

精彩图集