【问题标题】:How do you prevent Flask from logging specific routes? [duplicate]你如何防止 Flask 记录特定的路由? [复制]
【发布时间】:2020-06-08 00:40:47
【问题描述】:

目前我有一个具有多个 API 的 Web 服务器,但是在读取日志时遇到了问题,因为每 5 分钟就有一个 API 被访问。

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 时它不会注销?

【问题讨论】:

标签: python python-2.7 flask


【解决方案1】:

一种理想的方法是在 Python 的日志库周围使用 Flask's built-in wrapper,并手动记录您在相应路线中的任何内容。

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} -

还有一个不同的日志文件,用于记录您的核心应用程序逻辑。

依赖在终端上喷出的日志并不是一个好主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多