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 22 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
详解Django之admin组件的使用和源码剖析
May 04 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
python求平均数、方差、中位数的例子
Aug 22 Python
mac使用python识别图形验证码功能
Jan 10 Python
Python龙贝格法求积分实例
Feb 29 Python
Python Pygame实现俄罗斯方块
Feb 19 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数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
破解Session cookie的方法
2006/07/28 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
tensorflow 变长序列存储实例
2020/01/20 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
写自荐信的七个技巧
2013/10/15 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
物流仓储计划书
2014/01/10 职场文书
支部书记四风对照材料
2014/08/28 职场文书
立志成才演讲稿
2014/09/04 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
Django分页器的用法你都了解吗
2021/05/26 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技