如何记录属于Waveform的组件的调试或跟踪级别

时间:2013-11-20 20:08:48

标签: redhawksdr

我正在与Redhawk 1.9合作。

我的波形有两个组件(都是C ++)。他们通过消息相互沟通。我想在调试级别记录数据,以显示数据在组件之间正确传递。我从IDE启动了域和设备管理器,并在调试级别进行了日志记录。然后我启动了波形并启动了两个组件。如果在Info级别记录或通过std :: cout打印出来,Device Manager控制台将显示组件中的信息。

是否可以在波形中记录特定组件的调试或跟踪级别。那是从IDE启动波形的时候。

2 个答案:

答案 0 :(得分:2)

您可以为组件添加“long”类型属性,ID为“DEBUG_LEVEL”。检查“execparam”框类型。这将允许您通过将默认属性值设置为数字1-5来编辑启动时的特定组件调试级别:

  • 5:TRACE
  • 4:DEBUG
  • 3:INFO
  • 2:WARN
  • 1:ERROR

答案 1 :(得分:0)

当在IDE中设置域和设备管理器的日志记录级别时,以及使用nodeBooter -debug标志设置日志级别时,它仅影响域和设备管理器本身的详细程度。组件,波形等仅继续输出到INFO,我相信。

为了使组件以非默认日志记录级别输出到控制台,必须向运行正在执行组件的设备管理器的nod​​eBooter实例提供log4j配置文件。您可以在此处找到log4j配置文件的简短介绍:http://logging.apache.org/log4j/1.2/manual.html

将DEBUG级别日志消息传递到控制台的log4j配置文件的一个简单示例是:

  

log4j.rootLogger = DEBUG,LOGFILE

     

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连接到已启动的域/设备管理器“对话。