• logging模块学习(一)


    在代码编写过程中,我们会有打印日志的功能,实现打印日志功能的代码如下,我们分三部分学习日志的部分,首先是日志部分的学习,其次是日志在pytest中的使用

    python学习笔记二:(python3 logging函数中format说明) - 陌生初见 - 博客园

    日志常用指引 — Python 3.11.0 文档

    1.日志部分的学习

    我们在python中直接使用python的内置库(在python3中包含该内置库),导入该模块

    logging模块的多个属性,level,filename,basicConfig()的相关理解

    logging模块中我们的日志level有5个级别,其中定义如下

    其中logging模块默认的level是warning级别,所以debug级别的信息默认是不会打印的

    可以在basicConfig中指定日志的level,以及输出的文件filename,如果文件不存在时,会在当前目录下生成日志文件

    注意:在basicConfig函数中,encoding='utf-8'参数在filename不存在时,是不会生成文件的,所以刚生成文件时,无需指定encoding='utf-8'

    一些配置的参数如下:

    %(levelno)s: 打印日志级别的数值 ,理解%(xxx)s,是指以字符串的形式输出

    %(levelname)s:打印日志级别的名称

    %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]

    %(filename)s:打印当前执行程序名称,python如:login.py

    %(funcName)s: 打印日志的当前函数

    %(lineno)d: 打印日志的当前行号,在第几行打印的日志

    %(asctime)s: 打印日志的时间

    %(threadName)s: 打印线程名称

    %(process)d: 打印进程ID

    %(message)s: 打印日志信息

    简单的代码如下:

    1. import logging
    2. def test_log():
    3.     # logging.basicConfig(filename='example.log', level=logging.DEBUG,format='%(levelname)s:%(message)s')
    4.     # logging.debug('This message should go to the log file')
    5.     # logging.info('So should this')
    6.     # logging.warning('And this, too')
    7.     # logging.error('And non-ASCII stuff, too, like Øresund and Malmö')
    8.     #通过定义日志的级别来控制日志的输出,也可以将日志输出到一个文件中
    9.     logging.basicConfig(level=logging.INFO,filename='test_log.txt',encoding='utf-8')
    10.     logging.info('这是一个info级别的日志')
    11.     logging.debug('这是一个debug级别的日志')
    12.     logging.warning('这是一个warning级别的日志')
    13.     logging.error('这是一个error级别的日志')
    14.     logging.critical('这是一个critical级别的日志')

    2.logging模块在pytest中的应用

    如果直接将上述的代码在pytest框架中输出的时候,你会发现控制台并没有任何的输出,可以在pycharm运行配置中增加命令 -o log_cli=true来设置输出日志,同时也可以在这里指定日志的输出级别,eg:-o log_cli_level=INFO,此时仅会在终端中输出对应级别的日志

    也可通过pytest配置文件的方式去指定生成的log文件,以及日志级别格式等内容,在pytest.ini中配置的内容如下

    #在pytest.ini文件中指定控制台日志输出的格式

    1. [pytest]
    2. log_cli=1 #代表在控制台输出
    3. log_cli_level=DEBUG #代表在控制台输出的日志的级别  
    4. log_cli_date_format=%Y-%m-%d-%H-%M-%S #设置输出的日期格式
    5. log_cli_format=%(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s#设置日志输出的信息以及格式

    运行结果如下:

    #在pytest.ini文件中指定

    1. [pytest]
    2. log_cli=1 #代表在控制台输出
    3. log_file_level=DEBUG #代表在日志文件输出的日志的级别  
    4. log_cli_date_format=%Y-%m-%d-%H-%M-%S #设置输出的日期格式
    5. log_cli_format=%(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s #设置日志输出的信息以及格式
    6. log_file=log.log #指定输出的文件名

    运行结果如下:

  • 相关阅读:
    MySql的开发环境
    悬镜灵脉IAST助力国网湖南电力数字化业务安全
    Android studio2022.3项目中,底部导航菜单数多于3个时,只有当前菜单显示文本,其他非选中菜单不显示文本
    Linux基础系列(四)——Homebrew
    平台H5对接支付宝支付接口(含分布式源码)
    Springboot企业的信息管理系统5qs0a计算机毕业设计-课程设计-期末作业-毕设程序代做
    车载电子电器架构 —— 国产基础软件现在与未来
    驱动获取设备树节点信息
    评价类——熵权法(Entropy Weight Method, EWM),完全客观评价
    asp.net家校互动系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  • 原文地址:https://blog.csdn.net/miqingzhiwen/article/details/127640094