接口测试 Python+Pytest+Allure接口自动化框架

// # coding=utf-8
import sys
import logbook
import os
from logbook import *
from logbook.more import ColorizedStderrHandler

sys.path.append('../')

sys.path.append('/Users/dasouche/')

当前文件的上一层

curPath = os.path.abspath(os.path.dirname(__file__))

获取myProject,也就是项目的根路径

rootPath = curPath[:curPath.find("xiaobang-api-auto/")+len("xiaobang-api-auto/")] # 获取myProject,也就是项目的根路径
def log_type(record, handler):

log = "[{date}] [{level}] [{filename}] [{func_name}] [{lineno}] {msg}".format(
    date=record.time,  # 日志时间
    level=record.level_name,  # 日志等级
    filename=os.path.split(record.filename)[-1],  # 文件名
    func_name=record.func_name,  # 函数名
    lineno=record.lineno,  # 行号
    msg=record.message  # 日志内容
)
return log

日志存放路径

LOG_DIR = rootPath + 'log'
print(LOG_DIR)
if not os.path.exists(LOG_DIR):

os.makedirs(LOG_DIR)

日志打印到屏幕

log_std = ColorizedStderrHandler(bubble=True)
log_std.formatter = log_type

日志打印到文件

log_file = Skrill下载TimedRotatingFileHandler(

os.path.join(LOG_DIR, '%s.log' % 'log'), date_format='%Y-%m-%d', bubble=True, encoding='utf-8')

log_file.formatter = log_type

脚本日志

run_logger = Logger("global_log")
def init_logger():

logbook.set_datetime_format("local")
run_logger.handlers = []
run_logger.handlers.append(log_file)
run_logger.handlers.append(log_std)

'''
日志等级:
critical 严重错误,会导致程序退出
error 可控范围内的错误
warning 警告信息
notice 大多情况下希望看到的记录
info 大多情况不希望看到的记录
debug 调试程序时详细输出的记录
'''

实例化,默认调用

初始化日志系统(被默认调用)

init_logger()

if name == "__main__":

run_logger.info("测试日志模块")

run_logger.info("测试")

run_logger.debug('sss')

也可以以。ini 文件配置代码片段如下
[loggers]
keys = root
[handlers]
keys = consoleHandler,fileHandler
[formatters]
keys = fmt
[logger_root]
level = DEBUG
handlers = consoleHandler,fileHandler
[handler_consoleHandler]
class = StreamHandler
level = DEBUG
formatter = fmt
args = (sys.stdout,)
[handler_fileHandler]
class = logging.handlers.RotatingFileHandler
level = DEBUG
formatter = fmt
args = ('%(logfilename)s', 'a', 10485760, 20)
[formatter_fmt]
format = %(asctime)s -- %(levelname)s -- %(name)s -- %(funcName)s -- %(lineno)d -- %(message)s
日志加载代码
config_log_file = os.path.join(config_dir, 'logging.ini')
if not os.path.exists(log_dir):

os.makedirs(log_dir)

logpath = os.path.join(log_dir, '%s%s.log' % ('log-',time.strftime('%Y-%m-%d')))
logging.config.fileConfig(config_log_file,defaults={'logfilename':logpath})

你可能感兴趣的:(python)