3.2.1 日志事件函数

本节提供有关用于侦听日志事件的 MGM API 函数的信息。

ndb_mgm_listen_event()

描述

此函数用于侦听日志事件,这些事件是从返回文件描述符中读取的。事件使用基于文本的格式,与集群日志中的格式相同。

签名
int ndb_mgm_listen_event
    (
      NdbMgmHandle handle,
      const int    filter[]
    )
参数

这个函数有两个参数:

  • 一个NdbMgmHandle handle

  • Afilter由一系列{level, ndb_mgm_event_category}对(在单个数组中)组成,这些对被推送到文件描述符。用于 0终止列表的级别。

返回值

要从中读取事件的文件描述符。

ndb_mgm_create_logevent_handle()

描述

此函数用于创建日志事件句柄。

签名
NdbLogEventHandle ndb_mgm_create_logevent_handle
    (
      NdbMgmHandle handle,
      const int    filter[]
    )
参数

这个函数有两个参数:

  • 一个NdbMgmHandle handle

  • Afilter由一系列{level, ndb_mgm_event_category}对(在单个数组中)组成,这些对被推送到文件描述符。用于 0终止列表的级别。

返回值

日志事件句柄。

ndb_mgm_destroy_logevent_handle()

描述

当不再需要时,使用此函数销毁日志事件句柄。

签名
void ndb_mgm_destroy_logevent_handle
    (
      NdbLogEventHandle* handle
    )
参数

指向日志事件的指针 handle

返回值

没有

ndb_logevent_get_fd()

描述

NdbMgmLogEventHandle此函数从; 检索文件描述符 该描述符可用于(例如)应用程序 select()调用。

警告

不要尝试读取此函数返回的文件描述符;这会导致描述符损坏。

签名
int ndb_logevent_get_fd
    (
      const NdbLogEventHandle handle
    )
参数

一个LogEventHandle

返回值

文件描述符。如果失败, -1则返回。

ndb_logevent_get_next()

描述

此函数用于检索下一个日志事件,使用事件中的数据填充提供的 ndb_logevent结构。

签名
int ndb_logevent_get_next
    (
      const NdbLogEventHandle handle,
      struct ndb_logevent*    logevent,
      unsigned                timeout
    )
重要的

在 NDB 7.3 之前,日志事件 ndb_mgm_event_category被转换为一种enum类型。这种行为虽然不正确,但会干扰现有应用程序并在 NDB 7.3.7 中恢复;ndb_logevent_get_next2() 在同一个版本中添加了 一个展示更正行为的新函数 。

参数

此函数需要三个参数:

  • 一个NdbLogEventHandle

  • 指向ndb_logevent数据结构 的指针

  • 超时前等待事件的毫秒数;传递0此参数会导致函数阻塞,直到收到下一个日志事件

返回值

此函数返回的值解释如下:如果返回值小于或等于零,则logevent不会以任何方式改变或影响。

  • > 0:事件存在,并且它的数据被检索到 logevent

  • 0:等待事件时发生超时(超过 timeout毫秒)

  • < 0: 发生错误。

ndb_logevent_get_next2()

描述

此函数用于检索下一个日志事件,使用事件中的数据填充提供的 ndb_logevent结构。

ndb_logevent_get_next2()在 NDB 7.3.7 中添加。对于不需要向后兼容性的应用程序,它旨在作为 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()

描述

此函数从最近的错误中检索错误代码。

笔记

您可能更喜欢使用 ndb_logevent_get_latest_error_msg() 。参见 ndb_logevent_get_latest_error_msg()

签名
int ndb_logevent_get_latest_error
    (
      const NdbLogEventHandle handle
    )
参数

日志事件句柄。

返回值

错误代码。

ndb_logevent_get_latest_error_msg()

描述

检索在尝试读取日志事件时获得的最新错误的文本。

签名
const char* ndb_logevent_get_latest_error_msg
    (
      const NdbLogEventHandle handle
    )
参数

日志事件句柄。

返回值

错误消息的文本。