MySQL NDB Cluster API 开发人员指南  /  ...  /  日志事件函数

3.2.1 日志事件函数

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

ndb_mgm_listen_event()

描述

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

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 作为级别来终止列表。

返回值

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

ndb_mgm_create_logevent_handle()

描述

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

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

此函数接受两个参数

  • 一个 NdbMgmHandle handle

  • 一个 filter,它包含一系列 {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_mgm_event_category 被转换为 enum 类型。对于不执行此转换的等效函数,请使用 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_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
    )
参数

日志事件句柄。

返回值

错误消息的文本。