在 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 ,它只会显示信息日志。