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 06 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
Flask框架Flask-Login用法分析
Jul 23 Python
python实现nao机器人手臂动作控制
Apr 29 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
win10安装python3.6的常见问题
Jul 01 Python
python中如何设置代码自动提示
Jul 15 Python
彻底解决Python包下载慢问题
Nov 15 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 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如何透过ODBC来存取数据库
2006/10/09 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
Python实现单词翻译功能
2017/06/06 Python
使用python实现简单五子棋游戏
2019/06/18 Python
django中forms组件的使用与注意
2019/07/08 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
中学门卫岗位职责
2013/12/26 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis