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算法之栈(stack)的实现
Aug 18 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
Django中Forms的使用代码解析
Feb 10 Python
python实现微信自动回复功能
Apr 11 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python中数字是否为可变类型
Jul 08 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 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 UTF8 文件的签名问题
2009/10/30 PHP
javascript 图片裁剪技巧解读
2012/11/15 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
使用vue构建移动应用实战代码
2017/08/02 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
python静态方法实例
2015/01/14 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
24岁生日感言
2014/01/13 职场文书
致裁判员加油稿
2014/02/08 职场文书
市场总经理岗位职责
2014/04/11 职场文书
校园安全演讲稿
2014/05/09 职场文书
给校长的建议书100字
2014/05/16 职场文书
团队口号大全
2014/06/06 职场文书
农行心得体会
2014/09/02 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python