Как правильно включить / отключить ведение журнала для каждого запроса? - PullRequest
0 голосов
/ 26 апреля 2020

Я хотел бы включить / отключить ведение журнала для моего сервера для каждого запроса. Фоном является то, что я запускаю идентичный запрос каждую минуту, чтобы проверить, что все процедуры доступны и работают правильно. Это загромождает мои журналы, и я хочу, чтобы они были отключены.

В настоящее время я развертываю свое приложение flask с gunicorn:

gunicorn3 --workers=3 helloworld:app --bind=127.0.0.1:5000 --log-level info --timeout 600

, и я разрешаю запросы решать, требуют ли они регистрации или нет через булево свойство enable_logging в теле запроса:


import flask
import logging

app = flask.Flask(__name__)
log = logging.getLogger()


@app.route('helloworld/')
def hello_world():

    request_raw = flask_request.get_json()

    if request_raw.get('enable_logging', True):
        logging.disable(logging.NOTSET)
    else:
        logging.disable(logging.CRITICAL)

Я не уверен, что регистратор "разделяется" между всеми запросами, которые обрабатываются в любой момент. В этом случае один запрос может отключить ведение журнала, а затем другой запрос будет получен через секунду с включенным ведением журнала, и в этом случае процесс, обрабатывающий первый запрос, также начнет запись (в середине его выполнения). Я даже не знаю, как протестировать этот сценарий, кроме как в рабочей среде.

Является ли это законным способом реализации регистрации каждого запроса для flask? Как бы вы это реализовали?

...