python---通过装饰器增加日志信息
前言
# 定义一个装饰器 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)