我创建了一个Flask
应用。所有Flask
代码都在api.py
内。此应用使用其他文件,例如utils.py
。此文件包含将在api.py
。
内部api.py
我正在使用app.logger
进行日志记录,例如
app.logger.debug('HI')
此日志显示在控制台中。
但在utils.py
我正在使用:
import logging
logger = logging.getLogger('utils')
...
logger.debug('SOME MESSAGE')
但控制台中没有显示任何内容。
我现在正在使用的一个糟糕的,糟糕的,可怕的黑客,正在从app
api.py
from . import api
api.app.logger.debug('SOME MESSAGE')
此消息显示在控制台中。但我知道我在这里犯了错误。还有更好的方法吗?
答案 0 :(得分:1)
Flask使用全局app对象来存储这些东西。你最想做的是
from flask import current_app
current_app.logger.debug('hi')
或者,您可以使用标准python日志记录方法将默认记录器配置为使用烧瓶配置其记录器的方式来记录文件。
# app_logger.py
import logging
import logging.config
logging.config.fileConfig('logging_config.ini')
logger = logging.getLogger()
然后在其他文件中......
#utils.py
from app_logger import logger
logger.debug('hi')
第二种方式是我如何设置我的烧瓶应用程序的日志记录,创建一个全局"记录器"对象并导入该对象我想记录的任何地方(允许我轻松找出更改配置的位置,以执行诸如登录到stdout或文件或其他任何内容)