本節提供有關用於監聽日誌事件的 MGM API 函式的資訊。
- 描述
-
此函式用於監聽日誌事件,這些事件是從傳回的檔案描述符讀取的。事件使用基於文字的格式,與叢集日誌中的格式相同。
ndb_mgm_listen_event()
不支援 TLS。您可以使用ndb_mgm_create_logevent_handle()
,此函式有支援。 - 簽章
int ndb_mgm_listen_event ( NdbMgmHandle handle, const int filter[] )
- 參數
-
此函式接受兩個引數
一個
NdbMgmHandle
handle
。一個
filter
,其中包含一系列{level, ndb_mgm_event_category}
配對(在單一陣列中),這些配對會推送到檔案描述符。使用0
作為層級來終止清單。
- 傳回值
要從中讀取事件的檔案描述符。
- 描述
此函式用於建立日誌事件處理。
- 簽章
NdbLogEventHandle ndb_mgm_create_logevent_handle ( NdbMgmHandle handle, const int filter[] )
- 參數
-
此函式接受兩個引數
一個
NdbMgmHandle
handle
。一個
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 )
- 參數
一個日誌事件處理。
- 傳回值
一個錯誤碼。