6、日志-logging

一、logging的说明

1、日志功能

跟踪软件的运行情况,记录执行过程,按不同级别显示;

2、日志的级别

logging提供了一组便利的函数,用来做简单的日志,它们是debug()、info()、warning()、error()和critical()。

默认等级是warning,这意味着仅仅这个等级及以上的才会被反馈信息,除非logging模块被用来做其他事情。

等级顺序:critical>error>warning>info>debug;

级别

何时使用

debug

详细信息,一般只在调试问题时使用

info

证明事情按预期工作

warning

某些没有预料到的事情的提示,或者在将来可能出现的问题提示,例如:磁盘空间不足,但是软件还是会照常运行;

error

由于更严重的问题,软件已不能执行一些功能了

critical

严重错误,表明软件已不能继续运行了。

二、logging的使用

1、在pytest.ini 定义logging的级别

pytest是从pytest.ini中读取log_cli配置的,默认是关闭的,所以首先要设置pytest.ini文件;

[pytest]
log_cli = true
log_cli_level = INFO
log_format = %(asctime)s (%(filename)-16s:%(lineno)-3s) %(levelname)-8s %(message)s
log_date_format = %Y-%M-%D %H:%M:%S

2、具体应用

import pytest
import logging

log = logging.getLogger(__name__)
def test_logger():
    log.debug("This is debug message")
    log.debug("This is info message")
    log.debug("This is warning message")

 

三、详细解析

1、loggers

loggers 就是程序可以直接调用的一个日志接口,可以直接向logger写入日志信息。logger并不是直接实例化使用的,而是通过logging.getLogger(__name__)来获取对象,事实上logger对象是单例模式。logging是多线程安全的,也就是无论程序中哪里需要打日志获取到的logger对象都是同一个。但是logger并不支持多线程。

2、四大组件

组件名称

组件

说明

日志器

loggers

提供应用程序代码直接使用的接口

处理器

handlers

用于将日志记录发送到指定的目的位置

过滤器

filters

提供更细粒度的日志过滤功能,

用于决定哪些日志记录将会被输出(其它的日志记录将会被忽略)

格式器

formatters

用于控制日志信息的最终输出格式

3、各个组件之间的关系

  • 日志器(logger)需要通过处理器(handler)将日志信息输出到目标位置,如:文件、sys.stdout、网络等;
  • 不同的处理器(handler)可以将日志输出到不同的位置;
  • 日志器(logger)可以设置多个处理器(handler)将同一条日志记录输出到不同的位置;
  • 每个处理器(handler)都可以设置自己的过滤器(filter)实现日志过滤,从而只保留感兴趣的日志;
  • 每个处理器(handler)都可以设置自己的格式器(formatter)实现同一条日志以不同的格式输出到不同的地方。

简单点说就是:日志器(logger)是入口,真正干活儿的是处理器(handler),处理器(handler)还可以通过过滤器(filter)和格式器(formatter)对要输出的日志内容做过滤和格式化等处理操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sunny10189

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

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

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

打赏作者

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

抵扣说明:

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

余额充值