Python Logging日志封装

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)控制台和日志文件效果:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值