本文介绍了Python 根据日志级别打印不同颜色的日志的方法示例,分享给大家,具体如下:

# -*-coding:UTF-8-*-
import logging
import os
import time
class logger(object):
"""
终端打印不同颜色的日志,在pycharm中如果强行规定了日志的颜色, 这个方法不会起作用, 但是
对于终端,这个方法是可以打印不同颜色的日志的。
"""
#在这里定义StreamHandler,可以实现单例, 所有的logger()共用一个StreamHandler
ch = logging.StreamHandler()
def __init__(self):
self.logger = logging.getLogger()
if not self.logger.handlers:
#如果self.logger没有handler, 就执行以下代码添加handler
self.logger.setLevel(logging.DEBUG)
from serviceProgram.utils.FileUtil import FileUtil
rootPath = FileUtil.getProgrameRootPath()
self.log_path = rootPath + '/logs'
if not os.path.exists(self.log_path):
os.makedirs(self.log_path)
# 创建一个handler,用于写入日志文件
fh = logging.FileHandler(self.log_path + '/runlog' + time.strftime("%Y%m%d", time.localtime()) + '.log', encoding='utf-8')
fh.setLevel(logging.INFO)
# 定义handler的输出格式
formatter = logging.Formatter('[%(asctime)s] - [%(levelname)s] - %(message)s')
fh.setFormatter(formatter)
# 给logger添加handler
self.logger.addHandler(fh)
def debug(self, message):
self.fontColor('\033[0;32m%s\033[0m')
self.logger.debug(message)
def info(self, message):
self.fontColor('\033[0;34m%s\033[0m')
self.logger.info(message)
def warning(self, message):
self.fontColor('\033[0;37m%s\033[0m')
self.logger.warning(message)
def error(self, message):
self.fontColor('\033[0;31m%s\033[0m')
self.logger.error(message)
def critical(self, message):
self.fontColor('\033[0;35m%s\033[0m')
self.logger.critical(message)
def fontColor(self, color):
#不同的日志输出不同的颜色
formatter = logging.Formatter(color % '[%(asctime)s] - [%(levelname)s] - %(message)s')
self.ch.setFormatter(formatter)
self.logger.addHandler(self.ch)
if __name__ == "__main__":
logger = logger()
logger.info("12345")
logger.debug("12345")
logger.warning("12345")
logger.error("12345")另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。