我正在使用 Redhawk 1.9。
我有一个包含两个组件的波形(都在 C++ 中)。他们通过消息相互交流。我想在调试级别记录数据以显示数据在组件之间正确传递。我从 IDE 启动了域和设备管理器,并在调试级别进行了日志记录。然后我启动了波形并启动了两个组件。如果组件在 Info 级别记录或通过 std::cout 打印输出,则设备管理器控制台会显示组件信息。
是否可以在调试或跟踪级别记录波形中特定组件的日志。那是从 IDE 启动波形的时间。
我正在使用 Redhawk 1.9。
我有一个包含两个组件的波形(都在 C++ 中)。他们通过消息相互交流。我想在调试级别记录数据以显示数据在组件之间正确传递。我从 IDE 启动了域和设备管理器,并在调试级别进行了日志记录。然后我启动了波形并启动了两个组件。如果组件在 Info 级别记录或通过 std::cout 打印输出,则设备管理器控制台会显示组件信息。
是否可以在调试或跟踪级别记录波形中特定组件的日志。那是从 IDE 启动波形的时间。
您可以使用 ID 为“DEBUG_LEVEL”向组件添加“long”类型属性。检查“execparam”框类型。这将允许您通过将默认属性值设置为数字 1-5 来在启动时编辑特定的组件调试级别:
在 IDE 中设置域和设备管理器的日志级别时,以及使用 nodeBooter -debug 标志设置日志级别时,它只会影响域和设备管理器本身的详细程度。我相信,组件、波形等继续输出至 INFO。
为了让您的组件以非默认日志级别输出到控制台,您必须向运行正在执行组件的设备管理器的 nodeBooter 实例提供 log4j 配置文件。您可以在此处找到 log4j 配置文件的简短介绍:http: //logging.apache.org/log4j/1.2/manual.html
将 DEBUG 级别日志消息传递到控制台的 log4j 配置文件的一个简单示例是:
log4j.rootLogger=调试,日志文件
log4j.appender.LOGFILE=org.apache.log4j.ConsoleAppender log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
该文件的位置必须像这样传递到 nodeBooter 中:
nodeBooter -d /nodes/DevMgr_localhost/DeviceManager.dcd.xml -logcfgfile /home/ylb/exampleDevLogFile.log4j
您可以在 log4j 配置文件中提供许多其他配置选项,以便将日志写入控制台之外的文件,并且 log4j 可以提供日志轮换、最大日志文件大小检查、格式化等。
请记住,这意味着您通过命令行而不是通过 IDE 启动域和设备管理器,因此您只需通过“新域连接”对话框将 IDE 连接到已经启动的域/设备管理器。