Python3《零基础小白从入门到实战》之“日志模块 logging ”

print日志

例如:

class Dog():

    def __init__(self, color):
        print("正在初始化....")
        self.color = color
        print("已经定义好了 color 属性")
        self.ke = "dog"
        print("已经定义好了 ke 属性")
        try:
            a = []
            a[100]
        except IndexError:
            print("出现了错误。。。。。。。。。。。。。。。!!!!!!")


    def run(self):
        print("狗在跑")


dog = Dog("黑色")
print("已经定义好了 color 属性")

以上实例输出结果:

正在初始化....
已经定义好了 color 属性
已经定义好了 ke 属性
出现了错误。。。。。。。。。。。。。。。!!!!!!
已经定义好了 color 属性

logging日志

直接使用 logging 有以下问题:
- 没有产生info 信息
- 没有文件输出日志
- 没有时间和运行日志的位置。

例如:

import logging

class Dog():

    def __init__(self, color):
        logging.info("正在初始化")
        self.color = color
        logging.info("获取属性 color ")
        self.ke = "dog"
        logging.warning("警告,。。。。")
        try:
            a = []
            a[100]
        except IndexError:
            logging.error("超出异常错误,这里有错误,赶紧来处理!!!!")

    def run(self):
        print("狗在跑")


dog = Dog("黑色")
# print("已经定义好了 color 属性")

 以上实例输出结果:

WARNING:root:警告,。。。。
ERROR:root:超出异常错误,这里有错误,赶紧来处理!!!!

完美的日志处理

- 1, 日志收集器 logger:
- 2, 日志收集器级别 level
- 3, 日志处理器准备 handler
- 4, 日志处理器级别设置
- 5, 设置日志格式  format
- 6, 添加日志处理器

- 1,NOSET    0   等于没写,废话。
- 2,debug,  10,  调试,一些额外信息,备注,往往和主体功能无关。 日报里面的备注
- 3,info, 20  主体功能的信息。 日报,做了些啥?
- 4,warning, 30, 警告, 下次可能要出错了。 交警叔叔警告
- 5,error,  40,  犯错,违法。抢红灯
- 6, critical,  50, 极其严重。 抢银行

例如:

import logging

# 创建自己的日志收集器 logger
logger = logging.getLogger("pythonya")

# 设置日志收集器的日志级别
#定制输出渠道自己的日志级别,但是不能低于日志收集器的级别。 比如日志收集器为ERROR,那么此处为INFO就没有意义

logger.setLevel("INFO")

# 创建一个输出渠道 - 终端输出
handler = logging.StreamHandler()               
handler.setLevel("INFO")

# 创建一个输出渠道 - 输出到文件
file_handler = logging.FileHandler("pythonya.log", encoding="utf-8")   #显示在文件中
file_handler.setLevel("INFO")

# 处理器添加到收集器上。
logger.addHandler(handler)
logger.addHandler(file_handler)

# 设置日志输出格式 - Formatter类
fmt = logging.Formatter("time:%(asctime)s--%(levelname)s:%(name)s:%(message)s--%(filename)s---%(lineno)s")
handler.setFormatter(fmt)
file_handler.setFormatter(fmt)

logger.info("正常执行的逻辑")
logger.error("错误")
logger.debug("调试信息")

日志收集器(Logger类)

日志级别(Level)

debug、info、warning、error、critical(fatal)

默认是warning级别

输出渠道(Handle类):控制台(StreamHandle类)/文件(FileHandle类)

  • 不同的渠道,可以输出不同级别的日志 --- 每个渠道都可以定制自己的输出日志级别
  • 不同的渠道,可以输出不同的日志格式 --- 每个渠道都可以定制自己的输出日志格式

 

日志格式(Formatter类):输出的日志长啥样

 

logging模块自带一个日志收集器,名字叫做root,默认级别是WARNING

 

 

日志格式:
https://docs.python.org/zh-cn/3/library/logging.html

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

謹言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值