我想将日志记录添加到我的Python hug REST应用程序中。通过hug
命令(通过hug -f app.py
)提供应用程序时,我找不到任何方法,因此我尝试将拥抱与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”)的调试消息和从run.py
(“记录器设置为DEBUG”)我在控制台中看不到。
出了什么问题,我该如何解决? (如果这更容易,我很乐意使用另一个(支持Windows的)WSGI服务器。)
答案 0 :(得分:1)
您必须为logging
模块配置日志记录。请查看documentation for logging.config
(特别是dictConfig
和fileConfig
)。首先,要测试它是否有效,您只需调用
logging.basicConfig()
在进行任何记录之前,在app.py
中。这将使所有频道的输出转到sys.stderr
。
如果您希望其中的调试消息可见,请不要忘记在logging.setLevel(logging.DEBUG)
中执行app.py
。