2021-07-05 python之日志收集器

"""
0、日志收集器:
1、日志级别(LEVEL):DEBUG/INFO/WARNING/ERROR/CRITICAL(FATAL)
2、输出渠道(Handle):控制台(StreamHandle)、文件(FileHandle)
3、日志内容(Formatter):时间-哪个文件-哪行代码-输出内容

logging模块,默认root日志收集器,默认的输出级别为:WARNING
自定义收集器
第一步:创建一个日志收集器:logging.getLogger("收集器的名字")
第二步:给收集器设置日志级别:logger.setLevel(logging.INFO)
第三步:给日志收集器创建一个输出渠道:logging.StreamHandler()
第四步:给渠道设置一个日志输出内容的格式:handle1.setFormatter(formatter)
第五步:将设置的格式绑定到渠道中,将格式与渠道关联起来:handle1.setFormatter(formatter)
第六步:将设置好的渠道添加至收集器中:logger.addHandler(handle1)
"""
import logging
logger = logging.getLogger("yyc-py")
# 设置日志输出级别
logger.setLevel(logging.INFO)
# 设置日志输出在哪些渠道
handle1 = logging.StreamHandler()
# 设置渠道的输出内容格式
fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d行: %(message)s"
formatter = logging.Formatter(fmt)
# 将日志格式绑定到渠道当中
handle1.setFormatter(formatter)
# 将设置好的渠道添加至收集器中
logger.addHandler(handle1)

# 添加fileHandle
handle2 = logging.FileHandler("yyc2-py.log",encoding="utf-8")
handle2.setFormatter(formatter)
logger.addHandler(handle2)

logger.info("hello,文件收集器!!")

StreamHandler输出内容:

FileHandle输出内容(会多一个文件):

二、封装日志类

import logging

class MyLogger(logging.Logger):

    def __init__(self,name,level=logging.INFO,file=None):
        super().__init__(name,level)

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

        # 控制台渠道
        handle1 = logging.StreamHandler()
        handle1.setFormatter(formatter)
        self.addHandler(handle1)

        # 若有文件渠道
        if file:
            handle2 = logging.FileHandler(file,encoding="utf-8")
            handle2.setFormatter(formatter)
            self.addHandler(handle2)

mlogger = MyLogger("YYC",file="mylogger.log")   # 实例化后,后续调用不用再实例化

if __name__ == '__main__':
    mlogger.info("测试自己封装的日志类!!")

控制台输出:

文件输出:

调用:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值