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 内置函数complex详解
Oct 23 Python
python模仿网页版微信发送消息功能
Feb 24 Python
基于Django与ajax之间的json传输方法
May 29 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
python打开音乐文件的实例方法
Jul 21 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
详解OpenCV曝光融合
Apr 29 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 正则匹配函数体
2009/08/25 PHP
PHP操作xml代码
2010/06/17 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
Python随机数random模块使用指南
2016/09/09 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
通过python3实现投票功能代码实例
2019/09/26 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
建筑专业自荐信
2013/10/18 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
经销商会议欢迎词
2014/01/11 职场文书
幼教毕业生自我鉴定
2014/01/12 职场文书
服务之星获奖感言
2014/01/21 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python