zoukankan      html  css  js  c++  java
  • python 日志 模块

    由于这些天做接口测试所以把以前的东西复习一下,以下是我日志的配置

    logging 模块介绍

    setLevel:设置输入的日志级别
    Formatter :设置输入日志格式
    FileHandler:将日志信息输出到文件上
    StreamHandler:指定输入到控制台函数
    addHandler:日志添加
    logging中 DEBUG 是记录所有状态的错误信息的,特别注意WARNING 只记录错误以上的信息
    logging.handlers.TimedRotatingFileHandler(logpath, when='d', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8') 切割日志 每天产生一个带日期的文件


    日志格式函数:
    %(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:打印日志信息

    日志等级:
    FATAL:致命错误

    CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用

    ERROR:发生错误时,如IO操作失败或者连接问题

    WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误

    INFO:处理请求或者状态变化等日常事务

    DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态

     

    -----------------------------------------------------------------------------------------------------
     1 #  日志配置
     2 logdir = os.path.join(basedir, 'log')
     3 logpath =os.path.join(logdir, 'apiall.log')
     4 error =os.path.join(logdir, 'apierror.log')
     5 logger = logging.getLogger('apiteststudy')
     6 # 打印全部信息
     7 logger.setLevel(logging.DEBUG)
     8 
     9 # 再创建一个handler,用于输出到控制台
    10 ch = logging.StreamHandler()
    11 ch.setLevel(logging.DEBUG)
    12 
    13 fh = logging.handlers.TimedRotatingFileHandler(logpath, when='d', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8')
    14 # interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种:
    15 # S 秒
    16 # M 分
    17 # H 小时、
    18 # D 天、
    19 # W 每星期(interval==0时代表星期一)
    20 # midnight 每天凌晨
    21 # fh = logging.FileHandler(logpath, encoding='utf-8')
    22 datafmt = "%Y-%m-%d %H:%M:%S"
    23 fm = logging.Formatter(fmt='%(asctime)s %(name)-s %(module)-s[line:%(lineno)d] %(levelname)-s -- %(message)s',datefmt=datafmt)
    24 fh.setFormatter(fm)
    25 ch.setFormatter(fm)
    26 logger.addHandler(fh)  #打印到文件
    27 logger.addHandler(ch)  #打印到控制台
    28 logging.getLogger("requests").setLevel(logging.WARNING)
    29 # # 打印错误信息
    30 f_handler = logging.handlers.TimedRotatingFileHandler(error, when='D', interval=1, backupCount=5,atTime=datetime.time(0, 0, 0, 0),encoding='utf-8')
    31 f_handler.setLevel(logging.ERROR)
    32 datafmt = "%Y-%m-%d %H:%M:%S"
    33 fm = logging.Formatter(fmt='%(asctime)s %(name)-s %(module)-s[line:%(lineno)d] %(levelname)-s -- %(message)s',datefmt=datafmt)
    34 f_handler.setFormatter(fm)
    35 logger.addHandler(f_handler)
    
    
    
    
    
    




  • 相关阅读:
    Using Project Custom Properties to replace all end point of test cases
    Jacoco Code coverage with Robotframework Maven pom.xml example
    Jacoco Code coverage with Robotframework
    Test coverage in a multi module Maven project
    如何让linux的history命令显示时间记录
    项目角色职责分配表
    Linux检查哪些thread在占用CPU
    soapui_mockservicerunner_script.sh
    Some api interface link of Soapui
    GlusterFS分布式存储系统
  • 原文地址:https://www.cnblogs.com/mahaining/p/9697167.html
Copyright © 2011-2022 走看看