我需要一些帮助,以了解此处发生的情况。此代码来自web2py中的models/log.py模块,用于允许全局日志记录。

def _init_log():
    logger=logging.getLogger(request.application)
    ...
    return logger

logging=cache.ram('mylog',lambda:_init_log(),time_expire=99999999)


有人可以解释这可能如何工作,以及最后一行在做什么吗?

谢谢 -

最佳答案

这不是标准的web2py文件。 Sombody编写了它,但我可以看到它的作用:
在web2py中,单个安装可以运行多个应用程序。一些用户希望在同一web2py下运行的不同应用程序具有单独的日志,因此他们需要不同的记录器对象。在web2py中,没有全局设置,并且在每个请求上都执行所有用户代码,因此为了避免在每个请求上重新创建记录器,记录器对象仅创建一个并存储在具有较大到期时间的缓存中... 999 ... 9 。当http请求到达时,如果需要记录,它将在缓存中找到记录器。查看有关cache.ram的文档。

我已经使用了这个技巧,但从未进行过日志记录。

关于python - 帮助使用Python代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3303026/

10-10 23:49
查看更多