2014-06-16 4 views
1

나는 Flask's documentation on how to configure logging을 팔로우했다. 그러나, 그것이 내가 명시 적으로 지정하지 않는 한 로거에 기록하지 않는 것 같다 (및 설명서가 동의하는 것 같다.)자동으로 플라스크의 메시지를 로거에 로깅

여기

내가 지금

def create_app(environment): 
    """ creates the flask application. Uses a parameter to choose which config to use """ 
    app = Flask(__name__) 
    # ... 

    error_handler = RotatingFileHandler(
    os.path.join(app.config['LOG_FOLDER'], 'flask.log'), 
    maxBytes=100000, 
    backupCount=1 
) 
    error_handler.setLevel(logging.NOTSET) 
    error_handler.setFormatter(Formatter(
    '%(asctime)s %(levelname)s: %(message)s' 
    '[in %(pathname)s:%(lineno)d]' 
)) 
    app.logger.addHandler(error_handler) 

create_app() 내, 내 로거를 구성하는 방법입니다 I 디버거 에서처럼 오류가 발생할 때마다 로그에 역 추적을 넣기를 원합니다. 제작 중에도 가능합니까?

답변

3

이 작업을 수행하는 가장 쉬운 방법은 teardown_request에 오류 핸들러를 등록하는 것입니다 : 당신이 내 플라스크의 모든 질문에 대답처럼

@app.teardown_request 
def log_errors(error): 
    if error is None: 
     return 

    app.logger.error("An error occurred while handling the request", error) 
+0

보인다, 그러나 이것은 간단하고 우아한 솔루션입니다, 감사합니다 – corvid

관련 문제