2014-10-09 112 views
0

嗨,我正在尋找一些配置或標誌,讓我沉默所請求的頁面。如何在沒有屏幕記錄的情況下運行cherrypy應用程序?

當我運行python cherrypy_app.py,我在我啓動控制檯加入到127.0.0.1:8080的CherryPy的應用程序告訴我

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

我據我記得在第一次嘗試與CherryPy時,我有同樣的願望。因此,除了關閉stdout日誌本身之外,還有一點要說。

CherryPy有一些預定義的environments:定義here的staging,production,embedded,test_suite。每個環境都有其一套配置。因此,雖然開發標準輸出日誌實際上非常有用,但在生產環境中它沒有任何意義。根據部署情況設置環境是在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) 
+0

thx @saaj,但我如何運行我的應用cherrypy_app.py與櫻桃。我嘗試'櫻桃cherry_app.py',但似乎運行,但在網頁上沒有。 – inye 2014-10-10 16:30:48

+0

@inye''cherryd''應該與''cherrypy.quickstart''互斥,因爲它們在不同的使用情況下基本上做同樣的事情。我的意思是''if __name__ =='__main __'''裏面的代碼,並且在它之外。所以在我的例子中,在''App''類之後添加''cherrypy.tree.mount(App(),'/',config)''並且再試一次。例如。 '櫻桃-e生產cherry_app.py''。 – saaj 2014-10-10 16:51:09

+0

@inye不,正確的命令行是「cherryd -e production -i cherry_app」,因爲它不是模塊導入而是模塊執行。 – saaj 2014-10-10 16:58:53

相關問題