def loggingDecorator(func):
"""记录日志的装饰器"""
def wrapperLogging(*args, **kwargs):
logging.info("开始执行 %s() ..." % func.__name__)
func(*args, **kwargs)
logging.info("%s() 执行完成!" % func.__name__)
return wrapperLogging
def showInfo(*args, **kwargs):
print("这是一个测试函数,参数:", args, kwargs)
decoratedShowInfo = loggingDecorator(showInfo)
decoratedShowInfo('arg1', 'arg2', kwarg1=1, kwarg2=2)
我期待的结果是:
INFO:root:开始执行 showInfo() ...
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
INFO:root:showInfo() 执行完成!
但实际结果是:
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
INFO:root:开始执行 showInfo() ...
INFO:root:showInfo() 执行完成!
或者:
INFO:root:开始执行 showInfo() ...
INFO:root:showInfo() 执行完成!
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
请问各位这是为何啊
1
luoleng 2020-07-25 11:13:23 +08:00 1
应该不是程序的问题; logging 跟 print 混用造成的乱序;参考 https://www.zhihu.com/question/276797034/answer/391024938
|
2
baishuigansijun OP @luoleng 原来是这样,谢谢了
|