python日志通过不同的等级打印不同的颜色(示例代码)
作者:无霸独尊 发布时间:2022-08-18 01:47:25
标签:python,日志级别,颜色
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)
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)
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")
来源:https://blog.csdn.net/weixin_44174099/article/details/112535345
0
投稿
猜你喜欢
- (1) variable = a if exper else b(2)variable = (exper and [b] or [c])[0
- 分组小括号() 有直接分组和命名分组直接分组: ()分组只显示小括号括起来的内容re.findall(r"(name)+
- 网站可用性是任何网站的基本要素,而可用的导航更是网站所必需的要素之一。导航决定了用户如何与网站进行交互。如果没有了可用的导航,那么网站内容就
- python面向对象编程入门,我们需要不断学习进步"""抽象工厂模式的实现"""
- 临近春节,脚本之家小编带领大家用Python抢火车票!首先我们需要splinter安装:pip install splinter -i ht
- 今天写了点东西,要计算时间差,我记得去年写过,于是今天再次mark一下,以免自己忘记In [27]: from datetime impor
- 今天安装了几个模块,在cmd测试都正常,但是在pycharm就不行,后面试了以下方法:1、2、3、选择python.exe4、然后在回到se
- 接着上一篇交易记录整合交易类,这里描述区块的开发。首先我们要明白一个区块,需要的内容,包括交易记录集合,时间戳,哈希,上一个区块的哈希。明白
- 一、Python sys 模块“sys” 是 “system&rdquo
- 官方说明链接:https://intellij-support.jetbrains.com/hc/en-us/community/posts
- Windows中升级MySQL应采取的步骤:1. 进行升级前你应先备份当前的MySQL安装。2. 下载最新Windows版MySQL。3.
- python默认使用的是国外镜像,有时候下载非常慢,最快的办法就是在下载命令中增加国内源:常用的国内源如下:清华大学:https://pyp
- Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析下:如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面
- 1.单继承父类也叫基类子类也叫派生类如下所示,继承的关系:继承的书写格式:class 子类(父类):方法实例:class Animal: &
- asp+js做的一个dig程序中的投票(有的叫顶一下,踩一下),由于代码较长,只贴出核心部分:投票中的代码相关文章推荐:ajax +asp
- 实现用户登录并且输入错误三次后锁定该用户我的测试环境,win7,python3.5.1提示输入用户名,和密码判断是否被锁定判断用户名和密码是
- 本文实例为大家分享了python实现记事本功能的具体代码,供大家参考,具体内容如下1. 案例介绍tkinter 是 Python下面向 tk
- 代码及注释如下#Auther Bob#--*--conding:utf-8 --*--#生产者消费者模型,这里的例子是这样的,有一个厨师在做
- 所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的
- 引言在 Linux 服务器上,磁盘空间的使用情况是一个非常重要的指标。如果服务器上的磁盘空间不足,可能会导致服务器崩溃,影响网站的正常运行。