Get Started

Cookbook

基本应用

高级应用

Sessions and user state 会话和用户状态

Utils 实用工具

Templates 模板

Testing 测试

User input 用户输入

Database 数据库

Deployment 部署

问题

如何操作web.py自带的webserver的日志?

解法

我们可以用wsgilog来操作内置的webserver的日志,并做其为中间件加到应用中。

如下,写一个Log类继承wsgilog.WsgiLog,在init中把参数传给基类,如这个例子

import sys, logging
from wsgilog import WsgiLog, LogIO
import config

class 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 Log
application = web.application(urls, globals())
application.run(Log)