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 19 Python
Python中实现三目运算的方法
Jun 21 Python
python开发之thread线程基础实例入门
Nov 11 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
python 自动刷新网页的两种方法
Apr 20 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
Python Pandas 删除列操作
Mar 16 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 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
PHP5 安装方法
2006/10/09 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
详解rem 适配布局
2018/10/31 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
竞聘演讲稿范文
2014/01/12 职场文书
2014升学宴答谢词
2014/01/26 职场文书
促销活动总结报告
2014/04/26 职场文书
学生吸烟检讨书
2014/09/14 职场文书
化工厂员工工作总结
2015/10/15 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书