如何运行cherrypy app没有屏幕记录?

时间:2014-10-09 22:15:20

标签: cherrypy

您好我正在寻找一些允许我静音所请求页面的配置或标志。

当我运行python cherrypy_app.py并加入控制台中的127.0.0.1:8080时,我开始使用这个应用程序给我看

127.0.0.1 - - [09/Oct/2014:19:10:35] "GET / HTTP/1.1" 200 1512 "" "Mozilla/5.0 ..." 127.0.0.1 - - [09/Oct/2014:19:10:35] "GET /static/css/style.css HTTP/1.1" 200 88 "http://127.0.0.1:8080/" "Mozilla/5.0 ..." 127.0.0.1 - - [09/Oct/2014:19:10:36] "GET /favicon.ico HTTP/1.1" 200 1406 "" "Mozilla/5.0 ..."

我不想显示此信息。有可能吗?

1 个答案:

答案 0 :(得分:1)

据我记得,在我第一次尝试使用CherryPy时,我有同样的愿望。所以除了关闭stdout日志记录之外,还有更多的话要说。

CherryPy有一些预定义的environments:staging,production,embedded,test_suite,它们被定义为here。每个环境都有其配置集。因此,虽然开发stdout日志记录实际上非常有用,但在生产环境中却毫无意义。根据部署设置环境是在CherryPy中处理配置的正确方法。

在您的特定情况下,stdout日志记录由log.screen控制。它已在生产环境中禁用。

以下是示例,但请注意,在应用程序中设置环境并不是最佳选择。您最好使用cherryd --environment代替它。

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import cherrypy


config = {
  'global' : {
    'server.socket_host' : '127.0.0.1',
    'server.socket_port' : 8080,
    'server.thread_pool' : 8,
    # Doing it explicity isn't a recommended way
    # 'log.screen' : False
  }
}

class App:

  @cherrypy.expose
  def index(self):
    return 'Logging example'


if __name__ == '__main__':
  # Better use cherryd (http://cherrypy.readthedocs.org/en/latest/install.html#cherryd) 
  # for setting the environment outside the app
  cherrypy.config.update({'environment' : 'production'})

  cherrypy.quickstart(App(), '/', config)