前言
# 定义一个装饰器
def fun(foo):
def add():
print('日志打印')
foo()
print('日志上传成功')
return add
@fun
def test01():
print('这是自动化用例01')
@fun
def test02():
print('这是自动化用例02')
test01()
test02()
D:\python\python.exe D:/test_daily/test02.py
日志打印
这是自动化用例01
日志上传成功
日志打印
这是自动化用例02
日志上传成功
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# coding:utf-8
import logging
# 设置打印日志级别
logging.basicConfig(level=logging.DEBUG)
logging.debug('调试模式') # 调试模式
logging.info('基础信息') # 基础信息
logging.warning('警告信息') # 警告
logging.error('错误信息') # 错误
logging.critical('严重错误信息') # 严重错误
DEBUG:root:调试模式
INFO:root:基础信息
WARNING:root:警告信息
ERROR:root:错误信息
CRITICAL:root:严重错误信息
# coding:utf-8
import logging
# 获取日志记录器、配置日志等级
log = logging.getLogger(__name__)
log.setLevel("INFO")
# 默认日志格式
formatter = logging.Formatter("%(asctime)s - [%(levelname)s] - %(message)s")
# 输出到控制台的handler
shl = logging.StreamHandler()
# 配置默认日志格式
shl.setFormatter(formatter)
# 日志记录器增加此handler
log.addHandler(shl)
# 装饰器
def loger(func):
def inner(*args, **kwargs):
try:
result = func(*args, **kwargs)
log.info(f"日志信息: {func.__name__}{args}->{result}")
return result
except Exception as e:
log.error(f"报错信息: {func.__name__}->{str(e)}")
return inner
# coding:utf-8
from log import loger
import requests
@loger
def test_01():
url = 'http://apis.juhe.cn/simpleWeather/query'
data = {
"city": '上海',
'key': 'xxxxxxxxxx'
}
r = requests.post(url, data=data)
return (r.status_code)
@loger
def test_02():
url = 'http://apis.juhe.cn/simpleWeather/query'
data = {
"city": 北京,
'key': 'xxxxxxxxxxxx'
}
r = requests.post(url, data=data)
return (r.status_code)