Python之日志处理

什么是日志?

日志是一种可以追踪某些软件运行时所发生事件的方法。通过log的分析,可以方便用户了解系统或软件、应用的运行情况。
我们通过记录和分析日志可以了解一个系统或软件程序运行情况是否正常,也可以在应用程序出现故障时快速定位问题。
在自动化测试中,我们也可以使用日志模块进行记录以及问题的快速查找。

python如何实现日志的收集?

logging模块的基本应用

组建名称对应类名功能描述
日志器Logger提供了应用程序可一直使用的接口
处理器Handler将logger创建的日志记录发送到合适的目的输出
过滤器Filter提供了更细粒度的控制工具来决定输出哪条日志记录,丢弃那些日志记录
格式器Formatter决定日志记录的最终输出格式
步骤
1、创建日志对象

import logging
#创建日志对象
logger = logging.getLogger()

2、创建处理器
  1. 控制台处理器将日志输出到控制台
  2. 方法:logging.StreamHandler() #创建日志到控制台
    logging.FileHandler() #创建日志到指定路径
  3. 日志对象默认的级别为:WARNING
  4. 出现两个等级时,遵循以高等级的日志输出规则

⚠️日志器添加处理器

3、格式器

格式器作用:
决定日志生成的最终输出格式

  1. 创建格式器
  2. 处理器添加格式器
  3. 日志器添加处理器

⚠️处理器添加格式器

代码如下:

"""
    @Time : 2022/4/25 12:48 下午
    @Auth :  xxx
    @Funct :日志处理
"""
import logging
import os

import yaml

path = os.path.split(os.path.realpath(__file__))[0]
# print(path)
projectname = 'learning'

# 处理:是不是主入口运行
if path.endswith(projectname):
    pass
else:
    idx = path.find(projectname)
    path = path[:idx + len(projectname)]
    print(path)
# 读取yaml配置文件内容
with open(file=path + '/lib/conf.yaml', mode='r', encoding='utf-8') as file:
    # 获取配置文件中的logger信息
    logging_yaml = yaml.safe_load(file).get('logger')
    # 修改配置中的写入log文件路径
    logging_yaml['filename'] = path + logging_yaml.get('filename')
    # 定义处理器,文本输出方式
    file_handler = logging.FileHandler(filename=logging_yaml['filename'], encoding='utf-8')
    
#通过创建一个带有默认 Formatter 的StreamHandler 并将其添加到根日志记录器中来初始化基本配置。如果根日志记录器没有定义处理器,则debug(), info(), warning(), error() and critical() 会自动调用 basicConfig() 

logging.basicConfig(**logging_yaml)

# 创建日志器
logger = logging.getLogger()

# 定义处理器,控制台方式
consle = logging.StreamHandler()

# 设置日志级别
consle.setLevel(logging_yaml['level'])

# 设置日志格式
consle.setFormatter(logging.Formatter(logging_yaml['format']))

# 日志添加处理器
logger.addHandler(consle)
logger.addHandler(file_handler)

if __name__ == '__main__':
    logger.debug("DEBUG")
    logger.info("INFO")
    logger.warning("WARNING")
    logger.error("ERROR")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值