欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用colorlog實現(xiàn)控制臺管理日志多種顏色顯示

 更新時間:2024年03月11日 10:32:31   作者:搬磚的詩人Z  
colorlog 是一個 Python 日志庫,它可以讓你在控制臺中以彩色的方式顯示日志消息,使得日志更易于閱讀和理解,下面就跟隨小編一起來看看它的具體應用吧

colorlog 是一個 Python 日志庫,它可以讓你在控制臺中以彩色的方式顯示日志消息,使得日志更易于閱讀和理解。該庫允許你為不同級別的日志消息設置不同的顏色,比如將錯誤消息顯示為紅色,信息消息顯示為綠色等等。

效果圖

實現(xiàn)代碼

下面是我個人封裝的一個日志記錄庫:

import logging
import colorlog 
import os
from logging import handlers

log_colors_config = {
    'DEBUG': 'cyan',
    'INFO': 'green',
    'WARNING': 'yellow',
    'ERROR': 'red',
    'CRITICAL': 'red',
}

class LogHelper(object):
    level_relations = {
        'debug':logging.DEBUG,
        'info':logging.INFO,
        'warning':logging.WARNING,
        'error':logging.ERROR,
        'crit':logging.CRITICAL
    }#日志級別關系映射

    def __init__(self,filename,level='info',when='D',backCount=3):
        mexist=os.path.exists("log")
        if mexist == False:
            os.makedirs("log")

        self.logger = logging.getLogger(filename)
        ffmt='[%(asctime)s] [%(process)d] [%(levelname)s] - %(module)s.%(funcName)s (%(filename)s:%(lineno)d) - %(message)s'
        file_format_str = logging.Formatter(ffmt)#設置日志格式
        fmt='%(log_color)s[%(asctime)s] - %(message)s'      
        format_str = colorlog.ColoredFormatter(fmt,log_colors=log_colors_config)
        self.logger.setLevel(self.level_relations.get(level))#設置日志級別
        sh = logging.StreamHandler()#往屏幕上輸出
        sh.setFormatter(format_str) #設置屏幕上顯示的格式
        th = handlers.TimedRotatingFileHandler(filename="log/"+filename,when=when,backupCount=backCount,encoding='utf-8')#往文件里寫入#指定間隔時間自動生成文件的處理器
        #實例化TimedRotatingFileHandler
        #interval是時間間隔,backupCount是備份文件的個數(shù),如果超過這個個數(shù),就會自動刪除,when是間隔的時間單位,單位有以下幾種:
        # S 秒
        # M 分
        # H 小時、
        # D 天、
        # W 每星期(interval==0時代表星期一)
        # midnight 每天凌晨
        th.setFormatter(file_format_str)#設置文件里寫入的格式
        self.logger.addHandler(sh) #把對象加到logger里
        self.logger.addHandler(th)
if __name__ == '__main__':
    log = Logger('Log/all.log',level='debug')
    log.logger.debug('debug')
    log.logger.info('info')
    log.logger.warning('警告')
    log.logger.error('報錯')
    log.logger.critical('嚴重')
    Logger('error.log', level='error').logger.error('error')

使用方法

from time import sleep
import time
from common import LogHelper

logger = None  #日志
dataSteps = None #步驟
mapList = None   #映射關系
def main():
	global logger
	logger = LogHelper.LogHelper("test.log")
	logger.logger.info('啟動執(zhí)行')
	config = Config.readConfig(logger.logger)
	if config == None:
		logger.logger.error('讀取配置文件失敗,請檢查配置文件!')
		return
	ConfigCacheInfo.configDict = config

方法補充

除了上文的方法,小編還為大家整理了其他控制臺日志彩色顯示的方法,希望對大家有所幫助

使用logger 同時輸出到控制臺(顏色不同)和文件

import logging
import colorlog


log_colors_config = {
    'DEBUG': 'white',  # cyan white
    'INFO': 'green',
    'WARNING': 'yellow',
    'ERROR': 'red',
    'CRITICAL': 'bold_red',
}


logger = logging.getLogger('logger_name')

# 輸出到控制臺
console_handler = logging.StreamHandler()
# 輸出到文件
file_handler = logging.FileHandler(filename='test.log', mode='a', encoding='utf8')

# 日志級別,logger 和 handler以最高級別為準,不同handler之間可以不一樣,不相互影響
logger.setLevel(logging.DEBUG)
console_handler.setLevel(logging.DEBUG)
file_handler.setLevel(logging.INFO)

# 日志輸出格式
file_formatter = logging.Formatter(
    fmt='[%(asctime)s.%(msecs)03d] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s',
    datefmt='%Y-%m-%d  %H:%M:%S'
)
console_formatter = colorlog.ColoredFormatter(
    fmt='%(log_color)s[%(asctime)s.%(msecs)03d] %(filename)s -> %(funcName)s line:%(lineno)d [%(levelname)s] : %(message)s',
    datefmt='%Y-%m-%d  %H:%M:%S',
    log_colors=log_colors_config
)
console_handler.setFormatter(console_formatter)
file_handler.setFormatter(file_formatter)

# 重復日志問題:
# 1、防止多次addHandler;
# 2、loggername 保證每次添加的時候不一樣;
# 3、顯示完log之后調用removeHandler
if not logger.handlers:
    logger.addHandler(console_handler)
    logger.addHandler(file_handler)

console_handler.close()
file_handler.close()


if __name__ == '__main__':
    logger.debug('debug')
    logger.info('info')
    logger.warning('warning')
    logger.error('error')
    logger.critical('critical')

結果如下

到此這篇關于Python使用colorlog實現(xiàn)控制臺管理日志多種顏色顯示的文章就介紹到這了,更多相關Python colorlog控制臺彩色顯示日志內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論