我希望能够使用Python日志工具在代码中进行简单而一致的日志记录。在
我能够做到以下几点:
don't want to add everywhere
)。在log.info(...)
etc构造在我在项目层次结构中定义的任何函数中工作。在什么不管用/我不知道怎么做:
@log
装饰器。在# don't want to add everywhere
FORMAT = '%(asctime)s - %(name)-20s - %(levelname)-5s - %(message)s'
LEVEL = logging.DEBUG
logging.basicConfig(format=FORMAT, level=LEVEL)
log = logging.getLogger(__name__)
我的Flask项目示例代码:
#app/views.py
from c import d # various other imports required for the module
def logger(fn):
from functools import wraps
import inspect
@wraps(fn)
def wrapper(*args, **kwargs):
global log
log = logging.getLogger(inspect.stack()[1][3])
log.info('About to run %s' % fn.__name__)
out = apply(fn, args, kwargs)
log.info('Done running %s' % fn.__name__)
# Return the return value
return out
return wrapper
@app.route('/this_func')
@logger
def this_func():
log.info('I am doing logging without having to do bunch of definitions.')
# some more code
@app.route('/that_func')
@logger
def that_func():
log.info('Yet more logging without having to do bunch of definitions.')
log.info('I can simply refer to the log object and be done with it.')
# some more code
最后一个对我有用的设置是:
{or decorator>现在在函数中添加
^{pr2}$相关问题 更多 >
编程相关推荐