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


猜你喜欢
- 在上一篇博客中,我们学习了python遗传算法包geatpy。并用它展示了一个不带约束的单目标规划问题,对往期内容感兴趣的同学可以参考👇:链
- 本文实例为大家分享了Python管理Windows服务的具体代码,供大家参考,具体内容如下#!/usr/bin/python# encodi
- 本文实例讲述了Python原始字符串(raw strings)用法,分享给大家供大家参考。具体如下: Python原始字符串的产生
- 百度OCR体验地址:https://ai.baidu.com/tech/imagerecognition/general腾讯OCR体验地址:
- 原来是在系统上出了问题.是2003的IIS出现了问题,因为是2003的系统,它对ASP的上传文件做出了200K的限制,解决问题方法如下 :
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C
- 前言Pytorch、Tensoflow等许多深度学习框架集成了大量常见的网络层,为我们搭建神经网络提供了诸多便利。但在实际工作中,因为项目要
- 有1张表, Wages 表 ------------------------------------------- Emp_id&
- 本文实例讲述了php简单定时执行任务的实现方法。分享给大家供大家参考。具体实现方法如下:<?phpignore_user_abort(
- 个人觉得还是不要使用中文作为文件名的好,虽然我们用的语言是中文,毕竟中文容易出现问题,兼容性不好。用Dreamweaver制作网页时,如果插
- 这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 本文实例讲述了python使用正则表达式提取网页URL的方法。分享给大家供大家参考。具体实现方法如下:import reimport url
- 有部分老项目是在Eclipse环境开发的,最近公司要求应用瘦身,老项目也在其中。如果在 AS 下开发就不会有这样的问题,但是在 Eclips
- read()方法读取文件size个字节大小。如果读取命中获得EOF大小字节之前,那么它只能读取可用的字节。语法以下是read()
- 本文实例讲述了PHP实现的浏览器检查类。分享给大家供大家参考,具体如下:<?php//原作者:epsilon7//SonyMusic(
- 本文实例讲述了JavaScript闭包与作用域链。分享给大家供大家参考,具体如下:闭包定义闭包指的是有权访问另一个函数作用域中的变量的函数。
- 一、背景实际工作中会有一些耗时的异步任务需要使用定时调度,比如发送邮件,拉取数据,执行定时脚本通过celery 实现调度主要思想是 通过引入
- 本文实例讲述了JS数组方法concat()用法。分享给大家供大家参考,具体如下:数组方法concat()concat()可以基于当前数组中的
- pprint的英文全称Data pretty printer,顾名思义就是让显示结果更漂亮。print()和pprint()都是python
- 一、opencv是什么?OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.二、使用步骤1.引入库代码如下:import cv2