我的烧瓶应用程序使用一个模块来获取这样的记录器:
import logging
logger = logging.getLogger("XYZ")
...
logger.debug("stuff")
无需修改模块中的任何内容,我是否可以配置flask,以便模块在进行getLogger(" XYZ")调用时将获得瓶子的app.logger?
答案 0 :(得分:1)
是的,你可以配置它。
默认情况下,烧瓶记录器的名称是您的应用名称,但烧瓶的设置为LOGGER_NAME。
答案 1 :(得分:0)
This解决方案对我有用:
import logging
logger = logging.getLogger('werkzeug')
logger.debug('stuff')
默认的Flask配置似乎使用记录器名称werkzeug
。添加或更改此记录器的处理程序会改变Flask记录的方式。
PS。:Python 3.5,Flask 0.12.2
答案 2 :(得分:0)
如果要使用已经建立的Flask应用日志实例,那么您要做的就是导入当前应用并为其命名。
初始化 .py
from flask import Flask
my_app = Flask(__name__)
我要在其中使用Flask应用程序记录器的my_other_module.py
from flask import current_app as my_app
class myClass():
def __init__(self):
constructor stuff....
def my_class_method(self):
my_app.logger.info("log this message")
答案 3 :(得分:0)
在请求或CLI命令中,可以通过current_app访问Flask记录器。
用法示例:
from flask import current_app, Flask
app = Flask('HelloWorldApp')
@app.route('/')
def hello():
current_app.logger.info('Hello World!')
return "Hello World!"
if __name__ == '__main__':
app.run()