gpt4 book ai didi

logging - 如何在 flask View 中使用应用程序日志记录,它返回无法导入名称记录器

转载 作者:行者123 更新时间:2023-12-02 06:13:33 26 4
gpt4 key购买 nike

我想将 Flask 项目制作为大型项目结构所以我找到了如下示例项目

 ~/LargeApp
|-- run.py
|-- config.py
|__ /env # Virtual Environment
|__ /app # Our Application Module
|-- __init__.py
|-- /module_one
|-- __init__.py
|-- views.py
|-- models.py
|__ /templates
|__ /module_one
|-- hello.html
|__ /static
|__ ..
|__ .
|__ ..
|__ .

我在/app/init.py 中编写 create_app 函数

def create_app():
app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])

app.logger = my_get_logger_function() # this function set log level, and add handler to logger and return logger
db.init_app(app)

from .module_one.views import mod as module_one_blueprint
app.register_blueprint(module_one_blueprint)

return app

我想在我的/app/module_one/views.py 中使用记录器,以下是我的views.py 文件

from app import logger
...
@mod.route('/test/', methods=['GET'])
def test():
logger.info('test')

但是当我运行时,我收到消息“ImportError:无法导入名称'logger

我知道这是因为我在创建应用程序之前在views.py中调用了记录器

但我真的不知道如何解决它以及如何设计我的项目

最佳答案

实际上,错误是由于您没有在模块 app 中定义名称 logger 造成的。如果您想使用应用程序记录器,则应从您的应用程序实例 flask 导入 current_app,如下所示:

from flask import current_app

然后,在您看来,您可以使用记录器:

current_app.logger.info('Your message')

关于logging - 如何在 flask View 中使用应用程序日志记录,它返回无法导入名称记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54859980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com