在 Rasa SDK 中,如何在本地从操作服务器 运行 检索日志?
In Rasa SDK, how can I retrieve logs from the action server running locally?
我的操作服务器上有几个自定义操作 运行ning。我想使用日志记录模块从这些自定义操作中获取自定义日志消息。但是,我找不到正在生成的日志。
在我的动作文件中,我使用:
import logging
logger = logging.Logger(__name__)
# in any function
logger.debug("Some log message")
如果我 运行 我的动作服务器在本地使用:rasa 运行 actions --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 论坛中的另一个帖子(可在此处找到:"Debugging or Logging Custom Component")提出了一个略有不同的建议,即设置一个基本配置调用 logging.getLogger(__name__)
,如下所示:
logging.basicConfig(level='DEBUG')
这对我有用。如果相关,我在 docker 容器内使用 rasa-sdk 2.2.0。请记住在启动操作服务器端点时使用 --debug
或 -vv
标志以确保您实际获得调试消息,因为默认模式似乎是 --verbose
或 -v
,它只会显示信息日志。
我的操作服务器上有几个自定义操作 运行ning。我想使用日志记录模块从这些自定义操作中获取自定义日志消息。但是,我找不到正在生成的日志。
在我的动作文件中,我使用:
import logging
logger = logging.Logger(__name__)
# in any function
logger.debug("Some log message")
如果我 运行 我的动作服务器在本地使用:rasa 运行 actions --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 论坛中的另一个帖子(可在此处找到:"Debugging or Logging Custom Component")提出了一个略有不同的建议,即设置一个基本配置调用 logging.getLogger(__name__)
,如下所示:
logging.basicConfig(level='DEBUG')
这对我有用。如果相关,我在 docker 容器内使用 rasa-sdk 2.2.0。请记住在启动操作服务器端点时使用 --debug
或 -vv
标志以确保您实际获得调试消息,因为默认模式似乎是 --verbose
或 -v
,它只会显示信息日志。