7.5.3 错误日志组件
本节描述了错误日志组件的特征。关于配置错误日志的总体信息,请参见第7.4.2节,“错误日志”。
一个日志组件可以是过滤器或汇流器:
-
过滤器处理日志事件,添加、删除或修改事件字段,或者完全删除事件。结果事件将传递给列表中启用的下一个组件。
-
汇流器是日志事件的目的地(写入器)。通常,汇流器将日志事件处理成特定的格式,然后将这些消息写入其关联的输出,如文件或系统日志。汇流器也可能将日志事件写入性能架构表,见第29.12.22.2节,“错误_log 表”。事件将未经修改地传递给列表中启用的下一个组件(即使汇流器格式化事件以产生输出消息,但它不会对事件内部进行修改)。
系统变量log_error_services
列出启用的日志组件。未在列表中命名的组件被禁用。log_error_services
也隐式地加载错误日志组件,如果它们尚未加载。更多信息,请参见第7.4.2.1节,“错误日志配置”。
以下部分描述了单个日志组件,按组件类型分组:
组件描述包括以下类型的信息:
-
组件名称和预期用途。
-
组件是否是内置组件还是需要加载。对于可加载组件,描述指定了使用
INSTALL COMPONENT
和UNINSTALL COMPONENT
语句加载或卸载组件时使用的URN。隐式加载错误日志组件只需要组件名称。更多信息,请参见第7.4.2.1节,“错误日志配置”。 -
是否可以在
log_error_services
值中列出该组件多次。 -
对于sink组件,输出写入的目标位置。
-
对于sink组件,是否支持性能架构
error_log
表。
Filter 错误日志组件
错误日志过滤组件实现错误日志事件的过滤。如果没有启用过滤组件,什么都不会被过滤。
任何启用的过滤组件只对log_error_services
值中的后续组件生效。特别是,对于在log_error_services
之前的任何日志sink组件,什么都不会被过滤。
-
目的:基于日志事件优先级和错误代码,结合
log_error_verbosity
和log_error_suppression_list
系统变量实现过滤。见第7.4.2.5节,“基于优先级的错误日志过滤(log_filter_internal)”。 -
URN:该组件是内置的,不需要被加载。
-
多次使用:否。
如果log_filter_internal
被禁用,log_error_verbosity
和log_error_suppression_list
无效。
-
目的:根据
dragnet.log_error_filter_rules
系统变量设置实现基于规则的错误日志过滤。请参阅第7.4.2.6节,“基于规则的错误日志过滤(log_filter_dragnet)”。 -
URN:
file://component_log_filter_dragnet
-
多次使用:否。
Sink 错误日志组件
错误日志sink组件是实现错误日志输出的写入器。如果没有启用sink组件,日志输出不发生。
一些sink组件描述引用默认错误日志目标。这是控制台或文件,取决于log_error
系统变量的值,如第第7.4.2.2节,“默认错误日志目标配置”中所述。
-
目的:实现传统错误日志消息输出格式。
-
URN:这个组件是内置的,不需要加载。
-
多次使用:否。
-
输出目的地:写入默认错误日志目的地。
-
性能 Schema 支持:写入
error_log
表。提供了读取由前一个服务器实例创建的错误日志文件的解析器。
-
目的:实现 JSON 格式的错误日志记录。见第 7.4.2.7 节,“JSON 格式的错误日志记录”。
-
URN:
file://component_log_sink_json
-
允许多次使用:是。
-
输出目的地:这个 sink 根据默认错误日志目的地确定其输出目的地,该目的地由
log_error
系统变量给出:-
如果
log_error
命名了文件,那么 sink 根据该文件名,plus 一个编号的.
后缀,NN
.jsonNN
从 00 开始。例如,如果log_error
是file_name
,log_sink_json
在log_error_services
值中的多个实例写入到
、file_name
.00.json
等等。file_name
.01.json -
如果
log_error
设置为stderr
,那么输出到控制台。如果log_sink_json
在log_error_services
值中被多次命名,那么所有都写入控制台,这可能不是有用的结果。
-
-
性能_schema支持:将错误日志写入
error_log
表。提供了读取由前一个服务器实例创建的错误日志文件的解析器。
-
目的:实现系统日志中的错误记录。这是在 Windows 上是事件日志,在 Unix 和 Unix 类似系统上是 syslog。请参阅第 7.4.2.8 节,“系统日志中的错误记录”。
-
URN:
file://component_log_sink_syseventlog
-
允许多次使用:否。
-
输出目标:写入系统日志,不使用默认错误日志目标。
-
性能_schema支持:不写入
error_log
表,不提供读取由前一个服务器实例创建的错误日志文件的解析器。
-
目的:用于内部测试用途,而不是生产环境用途。
-
URN:
file://component_log_sink_test
sink 属性,如是否允许多次使用和输出目的地,未指定于 log_sink_test
,因为它是为内部使用的,因此其行为随时可能改变。