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

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


四、结合框架
==================================================结束====================================================
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值