python - 这是登录 Flask 的正确方式吗?

标签 python logging flask

我编写了一个 Flask 应用程序,如下所示:

import logging
from flask import Flask, jsonify
from mongo import Mongo
app = Flask(__name__)
app.config.from_object("config.ProductionConfig")


# routes to a particular change and patch number
@app.route("/<project>/")
def home(project):

    app.logger.info('testing info log')
    Mongo_obj = Mongo(ip=app.config["DB_HOST"], port=app.config["DB_PORT"],
                      username=app.config["DB_USERNAME"],

.....................
if __name__ == '__main__':
    app.run(host = '0.0.0.0', port = '5000')

现在,我面临的问题是,当我查看 Flask 应用程序的日志时,我看到的只是以下内容:

* Serving Flask app "service" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
172.16.40.189 - - [01/Oct/2019 14:44:29] "GET /abc HTTP/1.1" 200 -
172.16.11.231 - - [01/Oct/2019 14:44:29] "GET /abc HTTP/1.1" 200 -
............

是否需要执行某些特定操作才能查看日志消息?我需要在 Debug模式下运行 Flask 应用程序吗?

最佳答案

这就是我在应用程序中设置日志级别的方式。我使用 create_app 函数创建一个包含错误处理日志记录和其他必要配置的 Flask 应用程序。这是片段:

from flask import Flask
import logging


def create_app(test_config=None):
    # create and configure the app
    app = Flask(__name__)
    app.logger.setLevel(logging.ERROR)

    # Test Log levels
    app.logger.debug("debug log info")
    app.logger.info("Info log information")
    app.logger.warning("Warning log info")
    app.logger.error("Error log info")
    app.logger.critical("Critical log info")
    return app

app = create_app()

输出仅显示错误,并且目前可见较低的日志

 * Restarting with stat
[2022-12-12 17:38:39,375] ERROR in __init__: Error log info
[2022-12-12 17:38:39,375] CRITICAL in __init__: Critical log info

关于python - 这是登录 Flask 的正确方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58188819/

相关文章:

python - 操作列表项 python

python - RandomForestClassifier 可视化 - 重叠颜色

logging - 如何在 “docker logs”中禁止马拉松访问日志?

java - log4j 在 Catalina.out 和日志文件之间重复日志

flask - celery + Redis + Flask如何获得待通过 celery 执行的工作量

python - 导入错误 : No module named psycopg2 after install

python - networkx shortest_path(G[, source, target, weight]) 函数的源算法

python - 实际上,在 OSX Mountain Lion 上安装了太多的 Python

ruby-on-rails - 如何从 Rails 事件记录中返回查询,以便我可以将它们传回客户端日志控制台

python - 如何使用 Python 检查 Celery/Supervisor 是否正在运行