在 Rasa SDK 中,如何从本地运行的操作服务器检索日志?



我的操作服务器上运行了多个自定义操作。我想使用日志记录模块从这些自定义操作中获取自定义日志消息。但是,我找不到正在生成的日志。

在我的操作文件中,我使用:

import logging
logger = logging.Logger(__name__)
# in any function
logger.debug("Some log message")

如果我使用:rasa 运行动作 --actions actions --debug 在本地运行我的操作服务器,尽管执行了函数,但这些日志消息不会出现。我得到的唯一日志是以下形式:

2019-08-06 12:00:14 DEBUG    rasa.cli.utils  - 'actions.py' not found. Using default location 'actions' instead.
2019-08-06 12:00:14 INFO     rasa_sdk.endpoint  - Starting action endpoint server...
2019-08-06 12:00:20 INFO     rasa_sdk.executor  - Registered function for 'action_display_selector'.
2019-08-06 12:00:20 INFO     rasa_sdk.executor  - Registered function for 'action_explain'.
2019-08-06 12:00:20 INFO     rasa_sdk.executor  - Registered function for 'action_show_pictures'.
2019-08-06 12:00:20 INFO     rasa_sdk.executor  - Registered function for 'form_contact'.
2019-08-06 12:00:20 INFO     rasa_sdk.executor  - Registered function for 'form_preferences'.
2019-08-06 12:00:20 INFO     rasa_sdk.endpoint  - Action endpoint is up and running. on ('0.0.0.0', 5055)
2019-08-06 12:01:20 DEBUG    rasa_sdk.executor  - Received request to run 'action_display_selector'
2019-08-06 12:01:20 DEBUG    rasa_sdk.executor  - Finished running 'action_display_selector'
127.0.0.1 - - [2019-08-06 12:01:20] "POST /webhook HTTP/1.1" 200 208 0.515258

在哪里以及如何检索我的自定义日志消息?

非常感谢您的帮助!

这实际上很容易解决。我需要使用logging.getLogger(__name__)而不是logging.Logger(__name__)

import logging
logger = logging.getLogger(__name__)
# in any function
logger.debug("Some log message")

我已经尝试了这里提出的解决方案,但没有运气。但是,Rasa 论坛中的另一个线程(在此处找到:"调试或日志记录自定义组件"(对设置基本配置调用的建议略有不同,如下所示logging.getLogger(__name__)

logging.basicConfig(level='DEBUG')

这对我有用。如果相关,我在 docker 容器中使用 rasa-sdk 2.2.0。请记住在启动操作服务器终结点时使用 --debug-vv 标志,以确保您实际收到调试消息,因为默认模式似乎是 --verbose-v ,这将仅显示信息日志。

最新更新