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 BeautifulSoup使用方法详解
Nov 21 Python
python开发简易版在线音乐播放器
Mar 03 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
python+logging+yaml实现日志分割
Jul 22 Python
python禁用键鼠与提权代码实例
Aug 16 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
py-charm延长试用期限实例
Dec 22 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
关于php fread()使用技巧
2010/01/22 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
拖动一个HTML元素
2006/12/22 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
python实现将内容分行输出
2015/11/05 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
详解Python with/as使用说明
2018/12/13 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
wxPython实现列表增删改查功能
2019/11/19 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
财务会计专业应届毕业生求职信
2013/10/18 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
工厂见习报告范文
2014/10/31 职场文书
房屋租房协议书范本
2014/12/04 职场文书
领导视察通讯稿
2015/07/18 职场文书