我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的速度,可以更好的了解程序中发生的事情。本文分享一个技巧,可以让 Python 在控制台输出彩色的日志。
安装 coloredlogspipinstallcoloredlogs使用
首先,和正常打印日志一样,我们创建一个 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")最后的话
本文分享了一种输出彩色日志的方法,感觉不错的话,请分享给身边的程序员们,祝编码愉快。
我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的...
法院强制执行的时间:1、被执行人有财产可供执行的案件,一般应当在...
电暖宝里边的水不可以换或是自己注水。电热暖外形新颖、储热量大、...
生产不符合保障人体健康的国家标准、行业标准的医疗器械、医用卫生...
中新社北京12月30日电综合消息:据俄罗斯媒体报道,俄总统普京当地...
12月30号凌晨,有网友在社交网上分享了一则悲痛消息,陈百强母亲姚...
微星RTX30608G万图师超频型号当前秒杀价2399元,性价比非常不错,有...
值得警惕的是,游离于注册许可、备案审查、国家标准以及产品检验、...
继硅片大幅降价后,电池片成为光伏产业链价格下行通道中又一个受到...
仝小林指出,对于体质强健者,邪气多外出走表,或走太阳经表,发为...
乐居财经兰兰12月29日,上海思客琦智能装备科技股份有限公司(以下...
湖南猪肉零售价延续降势水果、蔬菜稳中有涨
2022年12月28日C杰华特融资净偿还3088 58万元,融资余额1 56亿元
智通财经APP讯,诺唯赞发布公告,公司及相关控股子公司,自2022年1...
兄弟们,这几天一直没有更新内容,主要是因为汤主也了。以前刷抖音...
苏试试验(SZ300416,收盘价:30 25元)12月28日晚间发布公告称,自2...
截至2022年12月28日收盘,普路通(002769)报收于8 24元,下跌4 74%...
博闻科技(600883)12月28日在投资者关系平台上答复了投资者关心的问题。
截至2022年12月27日收盘,三孚新科(688359)报收于63 26元,下跌2 ...
股票代码:000663 股票简称:永安林业 编号:2022-...
《中国石化涪陵页岩气田勘探开发十周年社会责任报告》将于28日下午...
IT之家12月27日消息,今天Redmi官方称RedmiK60系列要普及无线充电,...
为积极应对城市人口老龄化问题,满足多样化的养老服务需求,荣成市以...
据同花顺iFinD数据显示,12月26日白糖价格出现异动: 白糖12月26日...
1、车辆行驶证原件或复印件;2、车辆驾驶人驾驶证原件;3、车辆驾驶人...
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征...
人生无常、生命可贵,近年来有不少明星却英年早逝,不禁让人感慨命...
洪兴股份(001209)12月24日在投资者关系平台上答复了投资者关心的问题。
本文是中国大学慕课《机器学习》的“集成学习”章节的课后代码。课...
通光线缆公告,公司全资子公司江苏通光强能输电线科技有限公司(简称...