我相信每一个开发者都有打印日志的习惯,好看的日志可以加快调试的速度,可以更好的了解程序中发生的事情。本文分享一个技巧,可以让 Python 在控制台输出彩色的日志。
(资料图片仅供参考)
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")最后的话
本文分享了一种输出彩色日志的方法,感觉不错的话,请分享给身边的程序员们,祝编码愉快。
标签: 正常使用
全球播报:男孩小名楚辞叠字 好听得可爱的男孩小名
虎年霸气古诗有哪些 虎年春节古诗有哪些?|世界速讯
今日报丨小鹏要搞事情!邀请林志颖做G6代言人,死磕特斯拉不放手
当前热讯:聊城市人事考试网 聊城市人事考试网报名系统
宇视摄像头官网下载(宇视摄像头官网)
上海两男子往车窗塞露骨小卡片被刑事拘留,警方:他们与诈骗分子勾结_天天热讯
当前视讯!深圳壹连科技股份有限公司IPO过会
科伦博泰港股IPO:估值百亿尚无药品上市,默沙东为第二大股东 每日精选
鲁昂国家音乐学院_关于鲁昂国家音乐学院简述
提前打卡“大运之路” 运动员单程通勤时间不到20分钟
茶乾坤每10股派现0.5元 共计派发现金红利300万元
宏英智能:公司未参与三一魔塔1165重卡相关配套
万宁:“红色”六连不褪色 党建引领产业振兴铸就和美乡村_全球信息
宏英智能:公司在应用于农机装备上的物联网、大数据、移动互联网、智能控制等信息技术领域有所布局-世界观察
南凌科技:目前公司边缘计算服务收入较少 占营收比重不足1%
凝聚汽车产业高质量发展智慧 2023中国汽车重庆论坛开幕
全球通讯!洛亚蒂群岛发生5.7级地震 震源深度50千米
【环球报资讯】【推动项目建设 再升温 再提速 再突破】珲春:全力以赴抓好项目建设 助推经济高质量发展
沃尔沃全新小型纯电SUV EX30在米兰发布 环球今热点
小学“初体验” 洪山区实验幼儿园香趣园走进小学X 关闭
X 关闭