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