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")

到此这篇关于python日志通过不同的等级打印不同的颜色的文章就介绍到这了,更多相关python根据日志级别打印颜色内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

以上是 python日志通过不同的等级打印不同的颜色(示例代码) 的全部内容, 来源链接: utcz.com/z/317605.html

回到顶部