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)
分类:
python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)