python中logging模块使用方法(一)

前言:
好久没有更新记录文章了,博主最近一直一直在外地出差,好忙好忙,简直心力憔悴啊。近期几篇博客应该都会写一些logging模块的一些最实用的方法。在我们平时日常工作调试脚本的时候呢都喜欢用pring来打印一些信息来看,其实这样也不是不可以,但是在日常我们自动化测试脚本的开发中直接使用print打印脚本未免就有点不太合适。这里我们就可以使用logging模块来帮助我们实现日志打印以及日志文件的存储功能。
日志级别:
logging的日志级别一共分为5级,根据严重程度逐级提高。
在这里插入图片描述
默认情况下日志级别为WARNING低于这个级别的日志都不会打印。
下面举个例子说明一下。
在这里插入图片描述
在这里插入图片描述
现在我们将日志级别设置为DEBUG看看会打印出什么效果。

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('this is debug')
logging.info('this is info')
logging.warning('this is warning')
logging.error('this is error')
logging.critical('this is critical')

在这里插入图片描述
指定日志输出格式:

import logging

logging.basicConfig(format='%(asctime)s %(levelname)s %(name)s %(message)s')
logging.error('this is debug')

在这里插入图片描述
在这里插入图片描述
处理器:
这里的处理器最常用的有四种。
1、StreamHandler:标准流处理器,将消息发送到标准输出流、错误流
2、FileHandler:文件处理器,将消息发送到文件。
3、RotatingFileHandler: 文件处理器,文件达到指定大小后,启用新文件存储日志。
4、TimedRotatingFileHandler:文件处理器,日志以特定的时间间隔轮换日志文件。
我们在日常工作中以上四种日志处理器以及远远够用了,今天博主先来演示两个处理器的使用方法。
StreamHandler:标准流处理器:

import logging
from logging import StreamHandler
# 设置一个记录器一般以模块名字命名
logger = logging.getLogger(__name__)

# 标准流处理器
stream_handler = StreamHandler()
logger.setLevel(logging.DEBUG)

# 创建一个格式器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 作用在handler上
stream_handler.setFormatter(formatter)
# 添加处理器
logger.addHandler(stream_handler)

logger.info("this is info")
logger.error("this is error")
logger.warning("this is warning")

打印结果:
在这里插入图片描述
我们再设置一个将日志保存到文件中的处理器。这里我们就需要用到FileHandler:文件处理器了。

import logging
from logging import FileHandler
# 设置一个记录器一般以模块名字命名
logger = logging.getLogger(__name__)


logger.setLevel(logging.DEBUG)


file_handler = FileHandler(filename="test.log")
f_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.addHandler(file_handler)
file_handler.setFormatter(f_formatter)
logger.debug("this is debug")
logger.info("this is info")
logger.error("this is error")
logger.warning("this is warning")

在这里插入图片描述
将两个处理器写成一个类用于后期工作中的调用。控制台和文件都会记录相关信息。
最新博主心里事情好多啊,总是无法静下心来,心烦意乱。

import logging
from to_configure.absolute_path import Abaolutepath
ap = Abaolutepath().abaolutepath()


class logFrame:

    def getlogger(self):
        self.logger = logging.getLogger(__name__)
        # 判断是否有处理器,避免重复执行
        if not self.logger.handlers:
            # 日志输出的默认级别为warning及以上级别,设置输出info级别
            self.logger.setLevel(logging.DEBUG)
            # 创建一个处理器handler  StreamHandler()控制台实现日志输出
            sh = logging.StreamHandler()
            # 创建一个格式器formatter  (日志内容:当前时间,文件,日志级别,日志描述信息)
            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

            # 创建一个文件处理器,文件写入日志
            case_dir = ap + r'\\report\\test.log'
            fh = logging.FileHandler(filename=case_dir, encoding="utf_8")
            # 创建一个文件格式器f_formatter
            f_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

            # 关联控制台日志器—处理器—格式器
            self.logger.addHandler(sh)
            sh.setFormatter(formatter)
            # 设置处理器输出级别

            # 关联文件日志器-处理器-格式器

            self.logger.addHandler(fh)
            fh.setFormatter(f_formatter)
            # 设置处理器输出级别

        return self.logger


if __name__ == '__main__':
    log = logFrame()
    logger = log.getlogger()
    logger.debug('this is debug')
    logger.info('this is info')
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值