Python Logging日志封装

发布于:2022-12-31 ⋅ 阅读:(234) ⋅ 点赞:(0)

Logging日志封装:为了提高开发效率,我们可以根据自己项目的需要分装日志模块。

import logging
class Log():
    def __init__(self,log_path,consloe_fmt,file_fmt):
        """
        :param log_path:存放日志文件目录
        :param consloe_fmt:定义输出到控制台的格式
        :param file_fmt:定义写入日志文件的格式
        """
        self.log_path=log_path
        self.consloe_fmt=consloe_fmt
        self.file_fmt = file_fmt
        self.log_level = "DEBUG" #一级权限:设置日志整体日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
        self.consloe_level = "DEBUG" #二级权限:设置输出到控制台的日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
        self.file_level = "DEBUG" #二级权限:设置写入日志文件的日志层级:DEBUG、INFO、WARN、ERROTR、CRITICAL
        self.logger = self.get_logger()

    def get_format_handler(self,fmt):
        """
        :param fmt:定义格式处理器格式
        :return: format_handler
        """
        format_handler=logging.Formatter(fmt)
        return format_handler

    def get_consloe_handler(self):
        """
        :return: consloe_handler
        """
        consloe_handler=logging.StreamHandler()
        consloe_format_handler=self.get_format_handler(self.consloe_fmt)
        consloe_handler.setFormatter(consloe_format_handler)
        consloe_handler.setLevel(self.consloe_level)
        return consloe_handler

    def get_file_handler(self):
        """
        :return: file_handler
        """
        file_handler=logging.FileHandler(self.log_path,mode='a', encoding="utf-8")
        file_format_handler=self.get_format_handler(self.file_fmt)
        file_handler.setFormatter(file_format_handler)
        file_handler.setLevel(self.file_level)
        return file_handler

    def get_logger(self):
        """
        
        :return: logger日志实例对象
        """
        logger=logging.getLogger()
        logger.addHandler(self.get_consloe_handler())
        logger.addHandler(self.get_file_handler())
        logger.setLevel(self.log_level)
        return logger

demo使用教程:

(1)参数说明:

import log
log_path=r"./log.txt"
consloe_fmt="[%(asctime)s]-[%(levelname)s]-[%(filename)s] : %(message)s"
file_fmt="[%(asctime)s]-[%(levelname)s]: %(message)s"
参数 说明 变量类型
log_path 存放日志文件目录 字符串
consloe_fmt 定义输出到控制台的格式 字符串
file_fmt 定义写入日志文件的格式 字符串

(2)生成实例

logger=Log(log_path,consloe_fmt,file_fmt).logger

(3)生产日志信息【根据项目需要】

logger.debug("这是【debug】信息")
logger.info("这是【info】信息")
logger.warning("这是【waring】信息")
logger.error("这是【error】信息")
logger.critical("这是【critical】信息")

(4)控制台和日志文件效果:
在这里插入图片描述
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到