记录Flask微服务

时间:2018-03-28 23:05:13

标签: python logging flask

我创建了一个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')

此消息显示在控制台中。但我知道我在这里犯了错误。还有更好的方法吗?

1 个答案:

答案 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或文件或其他任何内容)