用拥抱和女服务员记录

Logging with hug and waitress

我想将日志记录添加到我的 Python hug REST app. I couldn't find any wayto do it when serving the app through the hug command (via hug -f app.py), therefore I try to combine hug with waitress

我在文件 app.py 中的最小应用程序结构如下所示:

import logging
logger = logging.getLogger(__name__)
import hug
.
.
.
@hug.get()
def func(detail):
    logger.debug("debug func")
    .
    .
    .

我用女服务员的脚本来上菜 run.py:

import logging
import waitress

import app

logger = logging.getLogger('waitress')
logger.setLevel(logging.DEBUG)
logger.debug("logger set to DEBUG")

waitress.serve(app.__hug_wsgi__)

当我在控制台中执行 python run.py 时,应用程序运行良好并且返回 func 的结果,但是来自 func ("debug func") 内部的调试消息 and from run.py ("logger set to DEBUG") 我在控制台中看不到。

出了什么问题,我该如何解决? (如果更容易的话,我很乐意使用另一个(Windows-capable)WSGI 服务器。)

您必须为 logging 模块配置日志记录。看看 documentation for logging.config(特别是 dictConfigfileConfig)。首先,要测试它是否有效,您可以简单地调用

logging.basicConfig()

app.py 中,然后再进行任何记录。这将使所有通道的输出转到 sys.stderr.

如果您希望那里的调试消息可见,请不要忘记在 app.py 中执行 logging.setLevel(logging.DEBUG)