文档首页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  错误日志组件

7.5.3 错误日志组件

本节介绍单个错误日志组件的特征。有关配置错误日志记录的一般信息,请参见第 7.4.2 节,“错误日志”.

日志组件可以是过滤器或接收器

  • 过滤器处理日志事件,以添加、删除或修改事件字段,或完全删除事件。生成的事件传递给已启用组件列表中的下一个日志组件。

  • 接收器是日志事件的目标(写入器)。通常,接收器将日志事件处理成具有特定格式的日志消息,并将这些消息写入其关联的输出,例如文件或系统日志。接收器也可以写入性能模式 error_log 表;请参见第 29.12.22.2 节,“error_log 表”。事件在传递给已启用组件列表中的下一个日志组件时保持不变(也就是说,虽然接收器格式化事件以生成输出消息,但它不会修改事件,因为它们在内部传递给下一个组件)。

log_error_services 系统变量列出了已启用的日志组件。在列表中未命名的组件已禁用。log_error_services 也隐式地加载错误日志组件(如果它们尚未加载)。有关更多信息,请参见第 7.4.2.1 节,“错误日志配置”.

以下各节介绍各个日志组件,按组件类型分组

组件描述包含以下类型的信息

  • 组件名称和预期用途。

  • 组件是内置的还是必须加载的。对于可加载组件,描述会指定在使用 INSTALL COMPONENTUNINSTALL COMPONENT 语句显式加载或卸载组件时要使用的 URN。隐式加载错误日志组件只需要组件名称。有关更多信息,请参见第 7.4.2.1 节,“错误日志配置”.

  • 组件是否可以在 log_error_services 值中列出多次。

  • 对于接收器组件,组件写入输出的目标。

  • 对于接收器组件,它是否支持与性能模式 error_log 表的接口。

过滤器错误日志组件

错误日志过滤器组件实现对错误日志事件的过滤。如果未启用任何过滤器组件,则不会进行任何过滤。

任何已启用的过滤器组件仅影响在 log_error_services 值中列出的后续组件的日志事件。特别是,对于在 log_error_services 中列出的比任何过滤器组件都早的任何日志接收器组件,都不会进行任何日志事件过滤。

log_filter_internal 组件

如果 log_filter_internal 已禁用,则 log_error_verbositylog_error_suppression_list 不会产生任何影响。

log_filter_dragnet 组件

接收器错误日志组件

错误日志接收器组件是实现错误日志输出的写入器。如果未启用任何接收器组件,则不会进行任何日志输出。

一些 sink 组件描述引用了默认错误日志目标。这是控制台或文件,由 log_error 系统变量的值指示,其确定方式如 第 7.4.2.2 节,“默认错误日志目标配置” 中所述。

log_sink_internal 组件
  • 用途:实现传统的错误日志消息输出格式。

  • URN: 此组件是内置的,无需加载。

  • 允许使用多次: 不允许。

  • 输出目标:写入默认错误日志目标。

  • 性能模式支持:写入 error_log 表。提供解析器用于读取先前服务器实例创建的错误日志文件。

log_sink_json 组件
  • 用途:实现 JSON 格式的错误日志记录。参见 第 7.4.2.7 节,“JSON 格式的错误日志记录”

  • URN:file://component_log_sink_json

  • 允许多次使用:是。

  • 输出目标:此 sink 根据默认错误日志目标确定其输出目标,默认错误日志目标由 log_error 系统变量给出。

    • 如果 log_error 指定了一个文件,则 sink 会根据该文件名以及一个编号的 .NN.json 后缀来命名输出文件,其中 NN 从 00 开始。例如,如果 log_errorfile_name,则 log_sink_jsonlog_error_services 值中指定的连续实例会分别写入 file_name.00.jsonfile_name.01.json 等等。

    • 如果 log_errorstderr,则 sink 会写入控制台。如果 log_sink_jsonlog_error_services 值中被多次命名,则它们都会写入控制台,这可能没有用。

  • 性能模式支持:写入 error_log 表。提供解析器用于读取先前服务器实例创建的错误日志文件。

log_sink_syseventlog 组件
  • 用途:实现向系统日志记录错误。这是 Windows 上的事件日志,以及 Unix 和类 Unix 系统上的 syslog。参见 第 7.4.2.8 节,“向系统日志记录错误”

  • URN:file://component_log_sink_syseventlog

  • 允许使用多次: 不允许。

  • 输出目标:写入系统日志。不使用默认错误日志目标。

  • 性能模式支持:不写入 error_log 表。不提供解析器用于读取先前服务器实例创建的错误日志文件。

log_sink_test 组件
  • 用途:用于编写测试用例的内部使用,不适用于生产环境。

  • URN:file://component_log_sink_test

对于 log_sink_test,未指定 sink 属性(例如是否允许多次使用以及输出目标),因为如上所述,它用于内部使用。因此,其行为可能会随时更改。