本节提供有关用于监听日志事件的 MGM API 函数的信息。
- 描述
-
此函数用于监听日志事件,这些事件从返回的文件描述符中读取。事件使用基于文本的格式,与集群日志中的格式相同。
ndb_mgm_listen_event()不支持 TLS。您可以使用ndb_mgm_create_logevent_handle(),该函数支持 TLS。 - 签名
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 )- 参数
日志事件句柄。
- 返回值
错误代码。