Flask автоматически регистрирует все виды журналов, например, при получении запроса POST Flask автоматически регистрирует его:
127.0.0.1 - - [05/Jul/2019 18:18:16] "POST /test/ HTTP/1.1" 200 -
Проблема в том, что эта запись ведется на stderr
, я бы хотел вместо этого делать все ту же запись, с форматированием по умолчанию, но вместо этого регистрироваться на sys.stdout
.
Я пробовал что-то вроде этого:
import logging
import sys
app = flask.Flask(__name__)
handler = logging.StreamHandler(sys.stdout)
app.logger.addHandler(handler)
И на основании документации на колбу Я попробовал:
import sys
from logging.config import dictConfig
dictConfig({
'version': 1,
'formatters': {'default': {
'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
}},
'handlers': {'wsgi': {
'class': 'logging.StreamHandler',
'stream': 'sys.stdout',
'formatter': 'default'
}},
'root': {
'level': 'INFO',
'handlers': ['wsgi']
}
})
app = flask.Flask(__name__)
Но первый не дает желаемого эффекта, а второй просто падает.