2017-01-21 2 views
1

플라스크 응용 프로그램을 실행 중입니다. 로그를 작성하고 싶습니다.플라스크에 로그인하는 방법

app = Flask(__name__) 

print() 문이 작동하지 않습니다. (아마도 내가 고정 표시기 용기에 플라스크를 실행 해요 때문에?) 어딘가 웹에 내가이 구문 발견

app.logger.info('successful query') 

출력을 제외하고 작동 상당히 부피가 :

-------------------------------------------------------------------------------- 
INFO in app [/usr/src/app/app.py:187]: 
successful query 
-------------------------------------------------------------------------------- 

당신은 상상할 수 이것들은 연속적으로 잔뜩 성가신 것입니다. 4 라인을 인쇄 할 때마다 인쇄 할 수 있습니다.

플라스크의 임의의 메시지를 한 줄에 간단하고 쉽게 기록 할 수 있습니까?

+0

앱 로거를 사용하지 말고 자체 로거를 사용하십시오. 모든 표준 파이썬 로깅입니다. – davidism

+0

https://docs.python.org/3/library/logging.html을 참조하십시오. 예제 사용법을 살펴 보겠습니다. 작동하는 경우 자유롭게 아래 답변을 남겨두면 받아 들일 것입니다. –

+0

@davidism logging.info가 작동하지 않습니다. 메시지가 나오지 않습니다. 다른 아이디어? –

답변

1

나는 Formatter이 그렇게하는 가장 좋은 방법이라고 생각합니다. 예 :

import logging 
from logging.handlers import TimedRotatingFileHandler 
from flask import Flask 

app = Flask(__name__) 

formatter = logging.Formatter("[%(asctime)s] %(message)s") 

handler = TimedRotatingFileHandler('path/to/file.log', when='midnight', 
            interval=1, backupCount=5) 
handler.setLevel(logging.INFO) 
handler.setFormatter(formatter) 
app.logger.addHandler(handler) 

asctime과메시지는 미리 정의되어 attributes.