在UI自动化应用中,经常会出错,打log就是一个很重要的环节,python的logging.basicConfig函数 真是既方便,又简单,每次粘贴到用例前,就可以打log了。

 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

相比print,具备如下优点:
        可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;

在python中,logging由logger,handler,filter,formater四个部分组成:

logger是提供我们记录日志的方法;handler是让我们选择日志的输出地方,如:控制台,文件,邮件发送等,一个logger添加多个handler;filter是给用户提供更加细粒度的控制日志的输出内容;formater用户格式化输出日志的信息。

python中配置logging有三种方式

第一种:基础配置,logging.basicConfig(filename="config.log",filemode="w",format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",level=logging.INFO)。
第二种:使用配置文件的方式配置logging,使用fileConfig(filename,defaults=None,disable_existing_loggers=Ture )函数来读取配置文件。
第三种:使用一个字典方式来写配置信息,然后使用dictConfig(dict,defaults=None, disable_existing_loggers=Ture )函数来瓦按成logging的配置.

一 、level

日志一共分成5个等级,从低到高分别是:DEBUG ,INFO ,WARNING ,ERROR, CRITICAL。
DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。
ERROR:更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。

二、日志输出:可以输出在控制台和文件,我选择的是输出在文件

StreamHandler:logging.StreamHandler;日志输出到流,可以是sys.stderr,sys.stdout或者文件
FileHandler:logging.FileHandler;日志输出到文件
BaseRotatingHandler:logging.handlers.BaseRotatingHandler;基本的日志回滚方式

RotatingHandler:logging.handlers.RotatingHandler;日志回滚方式,支持日志文件最大数量和日志文件回滚

日志回滚的意思为:比如日志文件是chat.log,当chat.log达到指定的大小之后,RotatingFileHandler自动把文件改名为chat.log.1。不过,如果chat.log.1已经存在,会先把chat.log.1重命名为chat.log.2。最后重新创建 chat.log,继续输出日志信息。【这样保证了chat.log里面是最新的日志】

TimeRotatingHandler:logging.handlers.TimeRotatingHandler;日志回滚方式,在一定时间区域内回滚日志文件
SocketHandler:logging.handlers.SocketHandler;远程输出日志到TCP/IP sockets
DatagramHandler:logging.handlers.DatagramHandler;远程输出日志到UDP sockets
SMTPHandler:logging.handlers.SMTPHandler;远程输出日志到邮件地址
SysLogHandler:logging.handlers.SysLogHandler;日志输出到syslog
NTEventLogHandler:logging.handlers.NTEventLogHandler;远程输出日志到Windows NT/2000/XP的事件日志
MemoryHandler:logging.handlers.MemoryHandler;日志输出到内存中的指定buffer
HTTPHandler:logging.handlers.HTTPHandler;通过"GET"或者"POST"远程输出到HTTP服务器

三、日志格式说明

logging.basicConfig函数中,可以指定日志的输出格式format,这个参数可以输出很多有用的信息,如上例所示:

》》logging.basicConfig函数各参数:

filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
 %(levelno)s: 打印日志级别的数值
 %(levelname)s: 打印日志级别名称
 %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
 %(filename)s: 打印当前执行程序名
 %(funcName)s: 打印日志的当前函数
 %(lineno)d: 打印日志的当前行号
 %(asctime)s: 打印日志的时间
 %(thread)d: 打印线程ID
 %(threadName)s: 打印线程名称
 %(process)d: 打印进程ID
 %(message)s: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

》》logging打印信息函数:

logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')

我在工作中给的常用格式在前面已经看到了。就是:

format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'

这个格式可以输出日志的打印时间,是哪个模块输出的,输出的日志级别是什么,以及输入的日志内容。

实例代码:

  1. # 初始化日志对象
  2. logging.basicConfig(
  3. # 日志级别
  4. level = logging.INFO,
  5. # 日志格式
  6. # 时间、代码所在文件名、代码行号、日志级别名字、日志信息
  7. format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
  8. # 打印日志的时间
  9. datefmt = '%a, %d %b %Y %H:%M:%S',
  10. # 日志文件存放的目录(目录必须存在)及日志文件名
  11. filename = 'd:/report.log',
  12. # 打开日志文件的方式
  13. filemode = 'w'
  14. )

--------------------- 
作者:echo6120 
来源:CSDN 
原文:https://blog.csdn.net/qq_30758629/article/details/80840230

logging.basicConfig函数相关推荐

  1. Python爬虫笔记——logging日志函数的使用

    logging官网介绍 python logging 日志使用 1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详 ...

  2. Python Logging.basicConfig

    使用默认的StreamHandler和默认的Formatter添加到root logger.debug(), info(), warning(), error() and critical()等方法如 ...

  3. Python实战之logging模块使用详解

    用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...

  4. 日志处理模块----logging

    文章目录 1.logging 模块简介 2.logging 模块使用 3.日志流处理流程 3.1Logger类: 3.2 Handler类 3.3 Formater类 3.4 Filter类 3.5 ...

  5. Python logging 模块

    logging 日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改 logging将日志打印到屏幕,日志级别大小关系为: CRITICAL > ERROR ...

  6. hashlib摘要算法模块,logging日志,configparser配置文件模块

    一.hashlib模块(摘要算法模块) 1.算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢? 摘要算法又称哈希算法.散列算法.它通过一个函数,把 ...

  7. python基础——logging、OS、sys、random、string模块(0424)

    2019独角兽企业重金招聘Python工程师标准>>> 一.日志记录模块  logging logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等 ...

  8. python处理日志_python日志处理(logging模块)

    文章非原创,搬运自@云游道士博客: 另外,这篇文章可以作为参考: 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用 ...

  9. Python之配置日志模块logging

    一.定义日志打印方式 如果我们运行自己的程序,有时候需要记录程序运行过程中出现的问题或者信息.可以运用日志模块logging来记录,该模块日志格式可以根据用户需求来自己定义. 常见打印日志信息形式如下 ...

最新文章

  1. flask-WTF和sqlalchemy结合使用并实现管理员表和用户表之间的关联关系(结合前端页面实现管理员和用户选择登录)
  2. uvc摄像头代码解析7
  3. vsFTPd 服务器初学者指南
  4. 技师学院计算机老师,技师学院计算机教学课堂改革探索论文
  5. Elasticsearch-02CentOS7安装elasticsearch-head插件
  6. Notepad++高亮AS文件
  7. python统计缺失值
  8. linux源码Makefile详解(完整)-转
  9. android消息,android消息机制
  10. JavaWeb:Ajax和JSON
  11. 阿里巴巴集团 CTO 约你聊聊这些事
  12. Java排序之Comparable与Comparator详解
  13. 发现同济七版高等数学中的一处疑似错误
  14. Java学习笔记【2】:抛出异常
  15. Windows11系统下解压文件后缀为.tar(.gz)的压缩文件
  16. PackageManager
  17. HDU - 3174(计算几何)
  18. 【转载】Ajax调用Wcf服务
  19. 2022年学习机器人和人工智能的一些体会
  20. android上传单个或多个文件

热门文章

  1. Postman使用Date数据类型,Postman发送Date类型数据,Postman模拟前端调用
  2. Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)
  3. python 网络编程之Socket通信案例消息发送与接收
  4. 第五周周记(国庆第五天)
  5. 确定修改——取消修改
  6. 汇编语言将数据、代码、栈放入不同段基础
  7. 写算子单元测试Writing Unit Tests
  8. 初具雏形的UL标准侧重于自主车辆的安全性
  9. 自动驾驶汽车事故的责任追究
  10. 将深度学习低延迟推理性能提高一倍