本節提供有關用於監聽日誌事件的 MGM API 函式的資訊。
- 描述
-
此函式用於監聽日誌事件,這些事件是從傳回的檔案描述符讀取的。事件使用基於文字的格式,與叢集日誌中的格式相同。
ndb_mgm_listen_event()不支援 TLS。您可以使用ndb_mgm_create_logevent_handle(),此函式有支援。 - 簽章
int ndb_mgm_listen_event ( NdbMgmHandle handle, const int filter[] )- 參數
-
此函式接受兩個引數
一個
NdbMgmHandlehandle。一個
filter,其中包含一系列{level, ndb_mgm_event_category}配對(在單一陣列中),這些配對會推送到檔案描述符。使用0作為層級來終止清單。
- 傳回值
要從中讀取事件的檔案描述符。
- 描述
此函式用於建立日誌事件處理。
- 簽章
NdbLogEventHandle ndb_mgm_create_logevent_handle ( NdbMgmHandle handle, const int filter[] )- 參數
-
此函式接受兩個引數
一個
NdbMgmHandlehandle。一個
filter,其中包含一系列{level, ndb_mgm_event_category}配對(在單一陣列中),這些配對會推送到檔案描述符。使用0作為層級來終止清單。
- 傳回值
一個日誌事件處理。
- 描述
當不再需要日誌事件處理時,請使用此函式來銷毀它。
- 簽章
void ndb_mgm_destroy_logevent_handle ( NdbLogEventHandle* handle )- 參數
指向日誌事件
handle的指標。- 傳回值
無.
- 描述
此函式從
NdbMgmLogEventHandle擷取檔案描述符;此描述符可用於(例如)應用程式select()呼叫中。
請勿嘗試從此函式傳回的檔案描述符讀取;這可能會導致描述符損毀。
- 簽章
int ndb_logevent_get_fd ( const NdbLogEventHandle handle )- 參數
一個
LogEventHandle。- 傳回值
一個檔案描述符。如果失敗,則傳回
-1。
- 描述
此函式用於擷取下一個日誌事件,並使用事件中的資料來填入提供的
ndb_logevent結構。- 簽章
int ndb_logevent_get_next ( const NdbLogEventHandle handle, struct ndb_logevent* logevent, unsigned timeout )
日誌事件的 ndb_mgm_event_category 會轉換為 enum 型別。對於不執行此轉換的等效函式,請改用 ndb_logevent_get_next2()。
- 參數
-
此函式需要三個參數
一個
NdbLogEventHandle一個指向
ndb_logevent資料結構的指標在逾時之前等待事件的毫秒數;為此參數傳遞
0會導致函式封鎖,直到收到下一個日誌事件
- 傳回值
-
此函式傳回的值解譯如下:如果傳回值小於或等於零,則
logevent不會以任何方式更改或受到影響。> 0:事件存在,並且其資料已擷取到logevent中0:在等待事件時發生逾時(經過的時間超過timeout毫秒)< 0:發生錯誤。
- 描述
此函式用於擷取下一個日誌事件,並使用事件中的資料來填入提供的
ndb_logevent結構。
ndb_logevent_get_next2() 修正了 ndb_logevent_get_next() 函式處理結構 ndb_mgm_event_category 的方式,適用於不需要向後相容性的應用程式。否則,它與 ndb_logevent_get_next() 相同。
- 簽章
int ndb_logevent_get_next2 ( const NdbLogEventHandle handle, struct ndb_logevent* logevent, unsigned timeout )- 參數
-
此函式需要三個參數
一個
NdbLogEventHandle一個指向
ndb_logevent資料結構的指標在逾時之前等待事件的毫秒數;為此參數傳遞
0會導致函式封鎖,直到收到下一個日誌事件
- 傳回值
-
此函式傳回的值解譯如下:如果傳回值小於或等於零,則
logevent不會以任何方式更改或受到影響。> 0:事件存在,並且其資料已擷取到logevent中0:在等待事件時發生逾時(經過的時間超過timeout毫秒)< 0:發生錯誤。
- 描述
此函式會從最近的錯誤擷取錯誤碼。
您可能會偏好改用 ndb_logevent_get_latest_error_msg()。請參閱 ndb_logevent_get_latest_error_msg()
- 簽章
int ndb_logevent_get_latest_error ( const NdbLogEventHandle handle )- 參數
一個日誌事件處理。
- 傳回值
一個錯誤碼。