2011-11-09 349 views
1

我正在嘗試編寫一個使用agentX的snmp子代理,它由net-snmp支持。 起初,我使用從NET-SNMP FAQ的示例代碼:如何在net-snmp中查看DEBUGMSGTL的日誌

http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_Subagent

而且從例如代碼 (例如-demon.c,nstAgentSubagentObject.c,nstAgentSubagentObject.h),I建一個可以使用agentX執行snmpget和snmpset的子代理。

我的問題是: 從代碼nstAgentSubagentObject.c,有很多跟蹤代碼,例如如下:

DEBUGMSGTL(("nstAgentSubagentObject", 
       "Initializing the nstAgentSubagentObject module\n")); 

,但我看不到任何地方登錄。

我試圖啓動snmpd(snmp的惡魔) snmpd -f -DnstAgentSubagentObject -Lf /tmp/snmp.log

但我仍然無法看到日誌。誰能告訴我如何查看DEBUGMSGTL的日誌?

回答

1

而不是啓動snmpd-D nstAgentSubagentObject您想在啓動時將該命令行選項傳遞給您的子代理。

在它表明開始用下面的命令子代理教程:

% ./mysubagent & 

爲了讓更多的調試信息,請嘗試使用下面的命令,而不是啓動它:

% ./mysubagent -D nstAgentSubagentObject 

如果我沒記錯正確的,這應該打印出調試輸出到控制檯。如果您希望寫入文件,可以將它與-L選項結合使用。

1

僅供參考,你也可以把下列一個snmp.conf文件和玩弄的選項有太多:

debugTokens nstAgentSubagentObject 
doDebugging 1 

但是,對方的回答是現貨上:你需要打開調試其中的代碼會被打到,這是在子代理中(snmp.conf文件將被兩個文件讀取)。

1

我可以只設置標誌:

-Dverbose 

,或者如果你想看到所有的日誌:

-Dall