python自动化笔记(十三)——日志模块logging二次封装

废话不多说,日志模块logging二次封装如下(封装Logger类):

import logging

class MyLogging(logging.Logger):
    def __init__(self,name,level = logging.INFO,file = None):
        """

        :param name: 日志名字
        :param level: 级别
        :param file: 日志文件名称
        """
        # 继承logging模块中的Logger类,因为里面实现了各种各样的方法,很全面,但是初始化很简单
        # 所以我们需要继承后把初始化再优化下,变成自己想要的。
        super().__init__(name,level)

        #设置日志格式
        fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s--%(lineno)dline :%(message)s"
        formatter = logging.Formatter(fmt)

        # 文件输出渠道
        if file:
            handle2 = logging.FileHandler(file,encoding="utf-8")
            handle2.setFormatter(formatter)
            self.addHandler(handle2)
        # 控制台渠道
        else:
            handle1 = logging.StreamHandler()
            handle1.setFormatter(formatter)
            self.addHandler(handle1)
# 因为一个项目的日志都是写入到一个日志文件的,所以可以把name,file这两个参数写死,直接实例化
# 后期每个模块调用就不用实例化,导入可以直接使用
logger = MyLogging("mylog",file="my_log.log")

if __name__ == '__main__':
    mlogger = MyLogging("abc")
    mlogger.info("封装好的日志类,console")
    logger.info("封装好的日志,文件渠道测试")

封装好后直接调用如下:

from python01.python1205.mylogger import logger  #引入实例化后的对象
from python01.python1205.mylogger import MyLogging

logger.info("测试文件log导入")

#同样,在控制台输出也是可以的
loger1 = MyLogging("yyy")
loger1.info("测试控制台输出")

结果如下:
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值