1. 程式人生 > >colorlog的三個例子

colorlog的三個例子

ron family 五步 方法 log dha handle 默認 efm

例1:默認的log_colors

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:創建一個日誌收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日誌的輸出級別
logger.setLevel(logging.DEBUG)

#第三步:設置輸出的日誌內容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(log_color)s%(message)s
" datefmt = %a, %d %b %Y %H:%M:%S formatter = ColoredFormatter(fmt=fmt, datefmt=datefmt, reset=True, secondary_log_colors={}, style=% ) #設置輸出渠道--輸出到控制臺 hd_1 = logging.StreamHandler()
#在handler上指定日誌內容格式 hd_1.setFormatter(formatter) #第五步:將headler添加到日誌logger上 logger.addHandler(hd_1) #第六步:調用輸出方法 logger.debug("我是debug級別的日誌") logger.info("我是info級別的日誌") logger.warning("我是warning級別的日誌") logger.critical("我的critical級別的日誌") logger.error("我是error級別的日誌輸出")

默認的color_colors的值為:

技術分享圖片

代碼運行結果:

技術分享圖片

例2:自定義log_colors

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:創建一個日誌收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日誌的輸出級別
logger.setLevel(logging.DEBUG)

#第三步:設置輸出的日誌內容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(log_color)s%(message)s"
datefmt = %a, %d %b %Y %H:%M:%S

formatter = ColoredFormatter(fmt=fmt,
                       datefmt=datefmt,
                       reset=True,
                       log_colors={
                               DEBUG:cyan,
                               INFO: green,
                            WARNING:yellow,
                            ERROR: red,
                            CRITICAL:red,bg_white
                            },
                       secondary_log_colors={},
                       style=%
                       )

#設置輸出渠道--輸出到控制臺
hd_1 = logging.StreamHandler()
#在handler上指定日誌內容格式
hd_1.setFormatter(formatter)


#第五步:將headler添加到日誌logger上
logger.addHandler(hd_1)

#第六步:調用輸出方法
logger.debug("我是debug級別的日誌")
logger.info("我是info級別的日誌")
logger.warning("我是warning級別的日誌")
logger.critical("我的critical級別的日誌")
logger.error("我是error級別的日誌輸出")

代碼運行結果:

技術分享圖片

例3:secondary_log_color的使用

import logging
from logging.handlers import RotatingFileHandler
from colorlog import ColoredFormatter

#第一步:創建一個日誌收集器logger
logger = logging.getLogger("autotest")

#第二步:修改日誌的輸出級別
logger.setLevel(logging.DEBUG)

#第三步:設置輸出的日誌內容格式
fmt = "%(log_color)s%(asctime)s  %(log_color)s%(filename)s  %(log_color)s%(funcName)s [line:%(log_color)s%(lineno)d] %(log_color)s%(levelname)s %(message_log_color)s%(message)s"
datefmt = %a, %d %b %Y %H:%M:%S

formatter = ColoredFormatter(fmt=fmt,
                       datefmt=datefmt,
                       reset=True,
                       secondary_log_colors={
                           ‘message‘: {
                               ‘ERROR‘: ‘red‘,
                               ‘CRITICAL‘: ‘yellow‘,
                               ‘WARNING‘: ‘green‘
                           }
                       },
                       style=%
                       )

#設置輸出渠道--輸出到控制臺
hd_1 = logging.StreamHandler()
#在handler上指定日誌內容格式
hd_1.setFormatter(formatter)


#第五步:將headler添加到日誌logger上
logger.addHandler(hd_1)

#第六步:調用輸出方法
logger.debug("我是debug級別的日誌")
logger.info("我是info級別的日誌")
logger.warning("我是warning級別的日誌")
logger.critical("我的critical級別的日誌")
logger.error("我是error級別的日誌輸出")

代碼運行結果:

技術分享圖片

colorlog的三個例子