IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest笔记(8)——日志 -> 正文阅读

[开发测试]pytest笔记(8)——日志

pytest笔记(8)——日志

pytest框架——日志:
导入库:import logging
指定日志级别:
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',#时间、文件名、行、级别名称、级别方法后的信息
                        datefmt='[%Y-%m_%d %H:%M:%S]', #日记格式,年月日时分秒
                        filename='./my.log',      #输出日志文件名
                        filemode='a')       #读写方式
输出日志到控制台:
        import logging
        初始化Logger对象
        logger = logging.getLogger(__name__)
        logger.setLevel(level = logging.DEBUG)
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        #初始化控制台对象
        console = logging.StreamHandler()
        console.setFormatter(formatter)
        #把控制台对象添加到日志Handler中
        logger.addHandler(console)
        module_logger = logging.getLogger('commlog.sub')
        #输出日志信息在控制台
        module_logger.info("Start print log")
        module_logger.debug("Do something")
        module_logger.warning("Something maybe fail.")
        module_logger.info("Finish")

公共日志模块:用的时候直接调用就可以
    #公共日志模块设置
    #**********************************
    import logging
    #初始化日志对象
    logger = logging.getLogger('commlog')  #这里的名称是自定义的
    logger.setLevel(level=logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    #初始化日志文件对象
    handler = logging.FileHandler('log1.txt')
    handler.setLevel(logging.INFO)
    handler.setFormatter(formatter)

    #初始化控制台对象
    console = logging.StreamHandler()
    console.setLevel(logging.DEBUG)
    console.setFormatter(formatter)

    #添加日志文件和控制台对象
    logger.addHandler(handler)
    logger.addHandler(console)
引用:
    from test_log import comm_log  #test_log是这个文件所在的位置,comm_log是公共模块的文件名称
    import logging

    module_logger = logging.getLogger('commlog.sub')   #commlog.sub中commlog是自定义的名称
    module_logger.info('this is another module using logging')
    module_logger.warning('另一个模块打印的警告')

配置文件实现公用化的日志:log.conf
        ###############################################
        [loggers]  #log日志的初始化
        keys=root  #key名称
        [logger_root]
        level=DEBUG  #级别
        handlers=hand01 #需要输出控制台设置这个
        ###############################################
        [handlers]   #输出控制台
        keys=hand01
        [handler_hand01]
        class=StreamHandler
        level=WARNING
        formatter=form01
        args=(sys.stderr,)   #
        ###############################################
        [formatters]
        keys=form01,form02
        [formatter_form01]
        format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
        datefmt=%a, %d %b %Y %H:%M:%S
        [formatter_form02]
        format=%(name)-12s: %(levelname)-8s %(message)s
        datefmt=%a, %d %b %Y %H:%M:%S

配置文件的调用:
import logging
import logging.config

logging.config.fileConfig('配置文件名称')  #加载配置文件
loggers = logging.getLogger('root')   #配置文件中初始化配置的key名称

loggers.debug('这是debug日志')

既可以输出到控制台也可以输出到日志:log.conf
        [loggers]
        keys=root,main

        [handlers]
        keys=consoleHandler,fileHandler

        [formatters]
        keys=fmt

        [logger_root]
        level=DEBUG
        handlers=consoleHandler

        [logger_main]
        level=DEBUG
        qualname=main
        handlers=fileHandler

        [handler_consoleHandler]
        class=StreamHandler
        level=DEBUG
        formatter=fmt
        args=(sys.stdout,)

        [handler_fileHandler]
        class=logging.handlers.RotatingFileHandler
        level=DEBUG
        formatter=fmt
        args=('test.log','a',20000,5,)

        [formatter_fmt]
        format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

调用:
        import logging
        import logging.config

        logging.config.fileConfig('配置文件名称')  #加载配置文件
        loggers = logging.getLogger('root')   #配置文件中初始化配置的key名称初始化控制台
        loggers_file = logging.getLogger('main')  #初始化文件  main取自log.conf配置中的key

=========================================日志模块小结==================================================

一、基本语法
    初始化

    基本配置:
        导入库:import logging
        指定日志级别:
            logging.basicConfig(level=logging.INFO,
                                format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',#时间、文件名、行、级别名称、级别方法后的信息
                                datefmt='[%Y-%m_%d %H:%M:%S]', #日记格式,年月日时分秒
                                filename='./my.log',      #输出日志文件名
                                filemode='a')       #读写方式

二、日志设置
    脚本内嵌

    公共模块日志文件
        公共日志模块:用的时候直接调用就可以
            #公共日志模块设置
            #**********************************
            import logging
            #初始化日志对象
            logger = logging.getLogger('commlog')  #这里的名称是自定义的
            logger.setLevel(level=logging.DEBUG)
            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

            #初始化日志文件对象
            handler = logging.FileHandler('log1.txt')
            handler.setLevel(logging.INFO)
            handler.setFormatter(formatter)

            #初始化控制台对象
            console = logging.StreamHandler()
            console.setLevel(logging.DEBUG)
            console.setFormatter(formatter)

            #添加日志文件和控制台对象
            logger.addHandler(handler)
            logger.addHandler(console)
        引用:
            from test_log import comm_log  #test_log是这个文件所在的位置,comm_log是公共模块的文件名称
            import logging

            module_logger = logging.getLogger('commlog.sub')   #commlog.sub中commlog是自定义的名称
            module_logger.info('this is another module using logging')
            module_logger.warning('另一个模块打印的警告')

    公共配置日志文件
        既可以输出到控制台也可以输出到日志:log.conf
                [loggers]
                keys=root,main

                [handlers]
                keys=consoleHandler,fileHandler

                [formatters]
                keys=fmt

                [logger_root]
                level=DEBUG
                handlers=consoleHandler

                [logger_main]
                level=DEBUG
                qualname=main
                handlers=fileHandler

                [handler_consoleHandler]
                class=StreamHandler
                level=DEBUG
                formatter=fmt
                args=(sys.stdout,)

                [handler_fileHandler]
                class=logging.handlers.RotatingFileHandler
                level=DEBUG
                formatter=fmt
                args=('test.log','a',20000,5,)

                [formatter_fmt]
                format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

        调用:
                import logging
                import logging.config

                logging.config.fileConfig('配置文件名称')  #加载配置文件
                loggers = logging.getLogger('root')   #配置文件中初始化配置的key名称初始化控制台
                loggers_file = logging.getLogger('main')  #初始化文件  main取自log.conf配置中的key

三、调用方法
    当前脚本包含日志对象及及方法
    调用公共文件
    调用公共配置


四、结合框架
==================================================结束====================================================
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:59:46  更:2021-08-18 13:00:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/28 11:58:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码