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遍历numpy数组的实例
Apr 04 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
python实现简单登陆流程的方法
Apr 22 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
python获取代码运行时间的实例代码
Jun 11 Python
python清除函数占用的内存方法
Jun 25 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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
人族 Terran 基本策略
2020/03/14 星际争霸
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
js点击选择文本的方法
2015/02/09 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
Python查找相似单词的方法
2015/03/05 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Python批量启动多线程代码实例
2020/02/18 Python
python的dict判断key是否存在的方法
2020/12/09 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
《生命的药方》教学反思
2014/04/08 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
2014年村委会工作总结
2014/11/24 职场文书
家长学校教学计划
2015/01/19 职场文书
推销搭讪开场白
2015/05/28 职场文书
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers