2010-05-11 36 views
0

在我们基于Pylons的网络应用程序中,我们创建了一个基本上提供一些日志记录功能的类。我们需要为每个http请求提供此类的新实例,但每个请求只有。如何在主塔中创建每个请求单体?

这是怎么回事?我们是否应该在中间件中创建对象并存储在request.environ中?有没有更适合的方法去解决这个问题?

回答

1

在Paste中有一个很好的请求局部变量的实现:paste.registry Pylons使用它作为它自己的请求局部全局变量。

只需像记录一样在“中间件”中创建对象并将全局变量导入到需要它的模块中。 (中间件在scarequotes中,因为它不是严格的中间件,因为它依赖于它的功能它是你的应用程序/框架的一部分)

0

可能依赖于内置的功能吗?

import logging 
logging.getLogger(__name__) 

日志功能在Python中是相当可定制的。

+0

是的,我们正在使用它。我们不会自己重写日志记录功能,我们正在编写一个确定准确记录什么信息的类。 – 2010-05-11 16:15:06

+0

@dave mankoff:过滤器,处理程序和格式化程序不符合您的需求,是吗? – newtover 2010-05-11 16:36:07

+0

nope。它不是关于过滤可用信息,而是关于捕获特定于我们的应用程序的信息并将其提供给记录器。 – 2010-05-11 16:54:29