我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的速度,可以更好的了解程序中发生的事情。本文分享一个技巧,可以让 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")最后的话
本文分享了一种输出彩色日志的方法,感觉不错的话,请分享给身边的程序员们,祝编码愉快。
2023年武汉疾控hpv九价疫苗预约时间及方法一、预约时间2022年12月30日至2023年2月28日,每日开放9价宫颈癌疫苗接种名额50剂次;12月30日、3
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
(原标题:雄帝科技:核酸码智能采集终端产品还没投放市场)同花顺(300033)金融研究中心12月29日讯,有投资者向雄帝科技(300546)提问,董
图为《通俗小说》亮相全国新书首发中心。作者主办方供图中新网广东新闻12月27日电(朱族英)五条人乐队主创之一仁科的首部文学作品《通俗小说》2
2023珠海城市阳台奇妙小镇迎新派对01 奇妙小镇行乐市集奇妙小镇行乐市集来啦!网红餐车贩卖爆款美食、创意车位摊兜售私房好味、小档供应特色人
长风渡小说原名为《嫁纨绔》。
出入境证件收费项目计费单位收费标准批准收费的机关及文号普通护照元 本120国家发改委、财政部 发改价格[2019]914号出入境通行证一次有效元
84消毒液根据不同的用途,可以配制成不同浓度的溶液来进行消毒。对于物体表面的消毒,可以配置成有效氯浓度为250mg L的溶液,500mL水中需要加
广东广州日报传媒股份有限公司 独立董事关于公司第十一届董事会第六次会议 相关事项的独立意见 广东广州日报传媒股份有
近日,在2022年第三届全球保险科技大会暨燕梳奖年度评选活动中,平安人寿新契约品质全流程闭环管理体系荣获“全球保险科技案例奖”。该管理体
X 关闭
福建不强制学生统一参加中小学课后服务
浙江柯桥本轮疫情为2起独立疫情 2人有进口快递接触史
河南新增本土确诊病例1例 本土无症状感染者28例
黑龙江本土感染者清零
5月24日0时至24时 天津新增17名本土阳性感染者
南方频繁阴雨持续至月底 北方大范围降温
X 关闭