实时

您的位置:首页>产品 >

Python 打印彩色日志

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

最后的话

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

关键词: 正常使用

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

2023-01-01 23:43:05

职工因工致残被鉴定为七级至十级伤残的,享受以下待遇:(一)从工伤保险基金按伤残等级支付一次性伤残补助金,标准为:七级伤残为13个月的本

2023-01-01 07:53:55

完全可以。1200w/220v电水壶,工作时的额定电流为5 4安培左右,普通的220V插座,工作电流可以达到10安培,所以使用完全没有问题。电水壶通常

2022-12-31 15:40:36

此消息来源于交易所公开披露,由和讯网智能公告整理。2022年12月31日公告显示:信息发展(300469)高管名称:赵亚青变动事项:任职变动职位:第

2022-12-30 20:20:18

12月29日晚,历时4天的全国大学生电竞大赛总决赛在成都天府国际会议中心落下帷幕。来自湖南科技职业学院的长沙KYZ在决赛中以4比3险胜来自郑州

2022-12-30 18:15:58

光威复材(300699)12月30日在投资者关系平台上答复了投资者关心的问题。

2022-12-30 15:03:15

格隆汇12月30日丨两市主要指数高开,沪指涨0 35%报3084点,深成指涨0 45%报11046点,创业板指涨0 54%报2361点。行业板块普遍上涨,汽车、

2022-12-30 09:22:45

12月29日,泰康兴泰回报沪港深混合最新单位净值为1 4708元,累计净值为1 4708元,较前一交易日下跌0 03%。历史数据显示该基金近1个月上涨1 42%

2022-12-30 01:17:15

2023年度济宁居民医保缴费什么时候截止统一将我省2023年度城乡居民基本医疗保险集中缴费期延长至2023年2月28日。凡在集中缴费期内参加各市2023

2022-12-29 19:35:05

中新网12月29日电据台湾《联合报》报道,台湾义务役将延长为一年,为让役男可在大学期间同时完成服役与学业,台防务部门抛出

2022-12-29 17:37:32

我的扬州APP上线“防疫物资预约”服务,扬州市民可通过线上预约,线下购买布洛芬、N95口罩、板蓝根等物资~➤预约入口:我的扬州APP➤预约时间

2022-12-29 15:28:51

网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可

2022-12-29 13:20:50

(原标题:孚能科技:岚图追光搭载的动力电池有使用公司供应的三元软包产品)同花顺(300033)金融研究中心12月29日讯,有投资者向孚能科技提

2022-12-29 11:25:19

元旦机票预订量价齐升:预订量日增30%,票价同比上涨近三成

2022-12-29 09:37:11

2023年武汉市保障性租赁住房(简称“保租房”)怎么申请?一、申请条件1、优先面向存在住房困难问题的城市基本公共服务人员及满足条件的新市民

2022-12-28 16:49:09

杭州工商代办股权转让电话13588404880

2022-12-28 13:58:08

无锡对乙酰氨基酚片免费发放消息汇总【无锡全市范围】本地药品生产企业应急生产的第一批280万片对乙酰氨基酚片将自12月28日起陆续投放到全市(

2022-12-28 10:26:36

网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可

2022-12-28 02:31:44

弘业股份:弘业股份第十届董事会十五次会议决议公告

2022-12-27 18:25:17

我国有哪些法定传染病?“乙类甲管”和“乙类乙管”有何不同?专家解读→26日,国家卫生健康委员会办公厅印发《关于对新型冠状病毒感染实施“

2022-12-27 14:38:55