2014-10-09 3 views
0

안녕하세요, 내가 요청한 페이지를 침묵시킬 수있는 몇 가지 구성이나 플래그를 찾고. 내가 python cherrypy_app.py을 실행하고 나는 시작 콘솔에서 127.0.0.1:8080에 가입하면화면 로깅없이 cherrypy 앱을 실행하는 방법은 무엇입니까?

는 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 : 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) 
+0

thx @saaj하지만 cherryd_app.py와 함께 cherryd_app.py를 실행하는 방법은 무엇입니까? 나는 cherryd cherry_app.py를 시도하지만 실행되는 것처럼 보이지만 웹 페이지에는 아무것도 없다. – inye

+0

@inye''cherryd''는 기본적으로''cherrypy.quickstart''와 상호 배타적으로 사용되어야합니다. 왜냐하면 그것들은 기본적으로 다른 유스 케이스에서 같은 것을하기 때문입니다. 나는''if __name__ == '__main __'''과 그 바깥에있는 코드를 의미합니다. 따라서 나의 예제에서는''App'' 클래스 다음에''cherrypy.tree.mount (App(), '/', config)''를 추가하고 다시 시도하십시오. 예 : ''cherryd -e 생산 체리 _app.py''. – saaj

+0

@inye 아니요, 올바른 명령 줄은 모듈 실행보다는 모듈 가져 오기를 수행하기 때문에''cherryd -e production -i cherry_app''입니다. – saaj