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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
python中实现定制类的特殊方法总结
Sep 28 Python
python判断数字是否是超级素数幂
Sep 27 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
如何基于python实现脚本加密
Dec 28 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
python反扒机制的5种解决方法
Feb 06 Python
详细总结Python常见的安全问题
May 21 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
一个基于flask的web应用诞生(1)
2017/04/11 Python
python 识别图片中的文字信息方法
2018/05/10 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
详解Python3定时器任务代码
2019/09/23 Python
Python流程控制语句的深入讲解
2020/06/15 Python
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
草船借箭教学反思
2014/02/03 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
音乐教师个人总结
2015/02/06 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
react antd实现动态增减表单
2021/06/03 Javascript
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python