Как вы препятствуете Flask регистрировать определенные c маршруты? - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время у меня есть веб-сервер с несколькими API, но у меня возникает проблема, когда дело доходит до чтения журналов, поскольку есть API, который срабатывает каждые 5 минут.

127.0.0.1 - - [24/Feb/2020 11:20:00] "POST / HTTP/1.1" 200 -
127.0.0.1 - - [24/Feb/2020 11:25:00] "POST / HTTP/1.1" 200 -
127.0.0.1 - - [24/Feb/2020 11:30:00] "POST / HTTP/1.1" 200 -

В настоящее время API выглядит следующим образом:

@app.route('/api-name', methods=['POST'])
def api_name():

Можно ли передать параметр, чтобы при вызове этого API он не выходил из системы?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Идеальным подходом может быть использование встроенной оболочки Flask вокруг библиотеки журналов Python и запись в журнал всех ваших данных на соответствующих маршрутах.

Простой выдержка из Flask документации:

@app.route('/login', methods=['POST'])
def login():
    user = get_user(request.form['username'])

    if user.check_password(request.form['password']):
        login_user(user)
        app.logger.info('%s logged in successfully', user.username)
        return redirect(url_for('index'))
    else:
        app.logger.info('%s failed to log in', user.username)
        abort(401)

То, что вы могли бы сделать, это иметь разные журналы для разных целей. Для журналов, связанных с доступом, аналогично тому, что вы видите на терминале, где отображаются следующие данные: {request_ip} - - {timestamp} "{request_method} {route} {http_version}" {response_status} -

и другой файл журнала с ведением журнала для вашего основного приложения logi c.

Не стоит полагаться на то, что журналы выводятся на терминал.

0 голосов
/ 24 февраля 2020

Следует придерживаться следующей идеи:

Отключить ведение журнала для модуля python в одном контексте, но не в другом

С уважением!

...