[PYTHON] 플라스크 서버에서 콘솔 메시지 사용 중지
PYTHON플라스크 서버에서 콘솔 메시지 사용 중지
솔라리스 서버가 독립 실행 형 모드로 실행되고 있습니다 (app.run () 사용). 하지만, 나는 콘솔에 어떤 메시지도 원하지 않는다.
127.0.0.1 - - [15/Feb/2013 10:52:22] "GET /index.html HTTP/1.1" 200 -
...
상세 모드를 비활성화하려면 어떻게합니까?
해결법
-
==============================
1.Werkzeug logger의 설정 수준을 ERROR로 설정할 수 있습니다.이 경우 오류 만 기록됩니다.
Werkzeug logger의 설정 수준을 ERROR로 설정할 수 있습니다.이 경우 오류 만 기록됩니다.
import logging log = logging.getLogger('werkzeug') log.setLevel(logging.ERROR)
다음은 OSX, Python 2.7.5, Flask 0.10.0에 대한 전체 예제 예제 테스터입니다.
from flask import Flask app = Flask(__name__) import logging log = logging.getLogger('werkzeug') log.setLevel(logging.ERROR) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
-
==============================
2.로깅 출력을 변경하려는 또 다른 이유는 테스트 용이며 서버 로그를 로그 파일로 재 지정합니다.
로깅 출력을 변경하려는 또 다른 이유는 테스트 용이며 서버 로그를 로그 파일로 재 지정합니다.
위의 제안을 위와 같이 작동시키지 못했습니다. 로거가 앱 시작의 일부로 설정되어있는 것처럼 보입니다. 앱을 시작한 후 로그 수준을 변경하여 작동시킬 수있었습니다.
... (in setUpClass) server = Thread(target=lambda: app.run(host=hostname, port=port, threaded=True)) server.daemon = True server.start() wait_for_boot(hostname, port) # curls a health check endpoint log_names = ['werkzeug'] app_logs = map(lambda logname: logging.getLogger(logname), log_names) file_handler = logging.FileHandler('log/app.test.log', 'w') for app_log in app_logs: for hdlr in app_log.handlers[:]: # remove all old handlers app_log.removeHandler(hdlr) app_log.addHandler(file_handler)
불행히도 * Running on localhost : 9151 및 첫 번째 상태 검사는 여전히 표준 출력으로 인쇄되지만 많은 테스트를 실행하면 출력을 톤 단위로 정리합니다.
"왜 log_names입니까?"라고 묻습니다. 내 경우에는 제거 할 로그가 필요했습니다. 다음을 통해 log_names에 추가 할 로거를 찾을 수있었습니다.
from flask import Flask app = Flask(__name__) import logging print(logging.Logger.manager.loggerDict)
추가 정보 : flaskapp.getLogger () 또는 뭔가가 있으면 좋을 것이므로 버전간에 더 강력합니다. 어떤 아이디어?
몇 가지 핵심 단어 : 플라스크 테스트 로그에서 stdout 출력 제거
덕분에 :
-
==============================
3.@Drewes 솔루션은 대부분의 시간 동안 작동하지만, 어떤 경우에는 여전히 werkzeug 로그를 얻는 경향이 있습니다. 정말로 그 중 하나를보고 싶지 않다면, 그렇게 사용하지 않는 것이 좋습니다.
@Drewes 솔루션은 대부분의 시간 동안 작동하지만, 어떤 경우에는 여전히 werkzeug 로그를 얻는 경향이 있습니다. 정말로 그 중 하나를보고 싶지 않다면, 그렇게 사용하지 않는 것이 좋습니다.
from flask import Flask import logging app = Flask(__name__) log = logging.getLogger('werkzeug') log.disabled = True app.logger.disabled = True
나를 위해 중단 (500) 제기했을 때 실패했습니다.
-
==============================
4.WSGI 서버를 사용하는 경우 로그를 없음으로 설정하십시오.
WSGI 서버를 사용하는 경우 로그를 없음으로 설정하십시오.
gevent_server = gevent.pywsgi.WSGIServer(("0.0.0.0", 8080), app,log = None)
from https://stackoverflow.com/questions/14888799/disable-console-messages-in-flask-server by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 setup.py가 트래비스 CI에서 잘못된 명령 'bdist_wheel'을 말하는 이유는 무엇입니까? (0) | 2018.11.19 |
---|---|
[PYTHON] 파이썬에서 "문자열"과 "문자열"사이에 어떤 차이가 있습니까? [복제] (0) | 2018.11.19 |
[PYTHON] 파이썬 : 소수점 이하 1 자리 가져 오기 [중복] (0) | 2018.11.19 |
[PYTHON] 파이썬을위한 것은 PHP를위한 '폭발'무엇입니까? (0) | 2018.11.19 |
[PYTHON] 파이썬 읽기라는 PIPE (0) | 2018.11.19 |