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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
Python实现的求解最小公倍数算法示例
May 03 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
python内存动态分配过程详解
Jul 15 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python super()函数使用及多重继承
May 06 Python
PyQt5实现简单的计算器
May 30 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
php处理斐波那契数列非递归方法
2012/02/04 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
javascript 学习笔记(onchange等)
2010/11/14 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python调用API实现智能回复机器人
2018/04/10 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
后备干部考察材料
2014/02/12 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
银行员工考核评语
2014/12/31 职场文书
离婚律师函范本
2015/05/27 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python