- 管理自带webserver日志
- 问题
- 解法
管理自带webserver日志
问题
如何操作web.py自带的webserver的日志?
解法
我们可以用wsgilog来操作内置的webserver的日志,并做其为中间件加到应用中。
如下,写一个Log类继承wsgilog.WsgiLog,在init中把参数传给基类,如这个例子:
import sys, loggingfrom wsgilog import WsgiLog, LogIOimport configclass Log(WsgiLog):def __init__(self, application):WsgiLog.__init__(self,application,logformat = '%(message)s',tofile = True,file = config.log_file,interval = config.log_interval,backups = config.log_backups)sys.stdout = LogIO(self.logger, logging.INFO)sys.stderr = LogIO(self.logger, logging.ERROR)
接下来,当应用运行时,传递一个引用给上例中的Log类即可(假设上面代码是’mylog’模块的一部分,代码如下):
from mylog import Logapplication = web.application(urls, globals())application.run(Log)
