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列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
理解Python中的With语句
Feb 02 Python
python查看zip包中文件及大小的方法
Jul 09 Python
python生成器表达式和列表解析
Mar 10 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
详解python数据结构和算法
Apr 18 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
Python随机数函数代码实例解析
Feb 09 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
pandas DataFrame.shift()函数的具体使用
May 24 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 feof用来识别文件末尾字符的方法
2010/08/01 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
php使用GeoIP库实例
2014/06/27 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
python2和python3在处理字符串上的区别详解
2019/05/29 Python
Python自定义一个异常类的方法
2019/06/27 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
《影子》教学反思
2014/02/21 职场文书
仓库主管岗位职责
2014/03/02 职场文书
环保志愿者活动总结
2014/06/27 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
安全生产月宣传标语
2014/10/06 职场文书
中学推普周活动总结
2015/05/07 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
python在package下继续嵌套一个package
2022/04/14 Python
nginx静态资源的服务器配置方法
2022/07/07 Servers