python日志通过不同的等级打印不同的颜色(示例代码)


Posted in Python onJanuary 13, 2021

1,不用第三方库

# coding: utf-8
import logging

BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(8)
RESET_SEQ = "\033[0m"
COLOR_SEQ = "\033[1;%dm"

COLORS = {
 'WARNING': GREEN,
 'INFO': WHITE,
 'DEBUG': BLUE,
 'CRITICAL': YELLOW,
 'ERROR': RED
}

class ColoredFormatter(logging.Formatter):
 def __init__(self, msg, use_color=True):
  logging.Formatter.__init__(self, msg)
  self.use_color = use_color

 def format(self, record):
  levelname = record.levelname
  message = str(record.msg)
  funcName = record.funcName
  if self.use_color and levelname in COLORS:
   levelname_color = COLOR_SEQ % (30 + COLORS[levelname]) + levelname + RESET_SEQ
   message_color = COLOR_SEQ % (30 + COLORS[levelname]) + message + RESET_SEQ
   funcName_color = COLOR_SEQ % (30 + COLORS[levelname]) + funcName + RESET_SEQ
   record.levelname = levelname_color
   record.msg = message_color
   record.funcName = funcName_color
  return logging.Formatter.format(self, record)

LOGFORMAT = "[%(asctime)s][%(name)s] [%(levelname)s] (%(filename)s:%(funcName)s:%(lineno)d) %(message)s"
LOG_LEVEL = logging.DEBUG
formatter = ColoredFormatter(LOGFORMAT)
stream = logging.StreamHandler()
stream.setLevel(LOG_LEVEL)
stream.setFormatter(formatter)
logging.root.setLevel(LOG_LEVEL)
log = logging.getLogger('logconfig')
log.setLevel(LOG_LEVEL)
log.addHandler(stream)
def Logging(name):
 log = logging.getLogger(name)
 log.setLevel(LOG_LEVEL)
 log.addHandler(stream)
 return log

if __name__ == '__main__':
 logger = Logging(__name__)
 logger.info(123123)
 logger.debug(123123)
 logger.error(123123)
 logger.warning(123123)

 

python日志通过不同的等级打印不同的颜色(示例代码)

2,使用colorlog pip install colorlog

# coding: utf-8
# coding: utf-8
from colorlog import ColoredFormatter
import logging

LOG_LEVEL = logging.DEBUG

LOGFORMAT = "[%(asctime)s][%(name)s] [%(log_color)s**%(levelname)s**%(reset)s] [%(filename)s:%(funcName)s:%(log_color)s%(lineno)d%(reset)s] %(log_color)s%(message)s%(reset)s"
logging.root.setLevel(LOG_LEVEL)
formatter = ColoredFormatter(LOGFORMAT)

stream = logging.StreamHandler()
stream.setLevel(LOG_LEVEL)
stream.setFormatter(formatter)

log = logging.getLogger('logconfig')
log.setLevel(LOG_LEVEL)
log.addHandler(stream)

def Logging(name):
 log = logging.getLogger(name)
 log.setLevel(LOG_LEVEL)
 log.addHandler(stream)
 return log

if __name__ == '__main__':
 logging = Logging("test")
 logging.info(123123)
 logging.warning(123123)
 logging.debug(123123)

python日志通过不同的等级打印不同的颜色(示例代码)

3,华丽的日志

pip install logbook termcc dataclasses

#coding: utf-8
from logbook import Logger
from termcc.helper.logger import sample_flask as setup_logger
setup_logger()

logging = Logger(__name__)
logging.info("123123")
logging.debug("123123")
logging.warn("123123")

python日志通过不同的等级打印不同的颜色(示例代码)

到此这篇关于python日志通过不同的等级打印不同的颜色的文章就介绍到这了,更多相关python根据日志级别打印颜色内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 正则表达式 概述及常用字符
May 04 Python
Python解析xml中dom元素的方法
Mar 12 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
Python实现将数据写入netCDF4中的方法示例
Aug 30 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
python openCV自制绘画板
Oct 27 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
python glom模块的使用简介
Apr 13 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 #Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 #Python
基于python+selenium自动健康打卡的实现代码
Jan 13 #Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 #Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 #Python
Python 生成短8位唯一id实战教程
Jan 13 #Python
python uuid生成唯一id或str的最简单案例
Jan 13 #Python
You might like
php提取字符串中网站url地址的方法
2014/12/03 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
网页javascript精华代码集
2007/01/24 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
python的数学算法函数及公式用法
2020/11/18 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
社区志愿者心得体会
2014/01/03 职场文书
高二生物教学反思
2014/01/27 职场文书
服务标兵事迹材料
2014/05/04 职场文书
品牌转让协议书
2014/08/20 职场文书
学校远程教育工作总结
2015/08/11 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技