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中open()函数指定文件打开方式的用法
Jun 04 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
Django实现WebSSH操作物理机或虚拟机的方法
Nov 06 Python
python实现超级马里奥
Mar 18 Python
Python 在局部变量域中执行代码
Aug 07 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
python 将md5转为16字节的方法
2018/05/29 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
电子狗项圈:eDog Australia
2019/12/04 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
行政专员岗位职责
2014/01/02 职场文书
工作所在部门证明
2014/09/21 职场文书
实习介绍信模板
2015/01/30 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
优秀员工演讲稿
2019/06/21 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
Python字典的基础操作
2021/11/01 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫