我正在与Redhawk 1.9合作。
我的波形有两个组件(都是C ++)。他们通过消息相互沟通。我想在调试级别记录数据,以显示数据在组件之间正确传递。我从IDE启动了域和设备管理器,并在调试级别进行了日志记录。然后我启动了波形并启动了两个组件。如果在Info级别记录或通过std :: cout打印出来,Device Manager控制台将显示组件中的信息。
是否可以在波形中记录特定组件的调试或跟踪级别。那是从IDE启动波形的时候。
答案 0 :(得分:2)
您可以为组件添加“long”类型属性,ID为“DEBUG_LEVEL”。检查“execparam”框类型。这将允许您通过将默认属性值设置为数字1-5来编辑启动时的特定组件调试级别:
答案 1 :(得分:0)
当在IDE中设置域和设备管理器的日志记录级别时,以及使用nodeBooter -debug标志设置日志级别时,它仅影响域和设备管理器本身的详细程度。组件,波形等仅继续输出到INFO,我相信。
为了使组件以非默认日志记录级别输出到控制台,必须向运行正在执行组件的设备管理器的nodeBooter实例提供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连接到已启动的域/设备管理器“对话。