本节描述各个错误日志组件的特征。有关配置错误日志记录的一般信息,请参见第5.4.2节“错误日志”。
日志组件可以是过滤器或接收器:
- 筛选器处理日志事件,以添加,删除或修改事件字段,或完全删除事件。结果事件将传递到已启用组件列表中的下一个日志组件。
- 接收器是日志事件的目标(写入器)。通常,接收器将日志事件处理为具有特定格式的日志消息,并将这些消息写入其关联的输出,例如文件或系统日志。接收器也可以写入性能模式
error_log表;请参见 第26.12.19.1节“ error_log表”。事件将未经修改地传递到已启用组件列表中的下一个日志组件(也就是说,尽管接收器格式化事件以生成输出消息,但当事件在内部传递到下一个组件时,它不会修改事件)。
该log_error_services系统变量值列表启用日志组件。列表中未命名的组件被禁用。
以下各节介绍了按组件类型分组的单个日志组件:
组件说明包括以下类型的信息:
- 组件名称和预期用途。
- 组件是内置的还是必须加载的。对于可加载的组件,该描述指定了用于使用
INSTALL COMPONENTandUNINSTALL COMPONENT语句加载和卸载组件的URN 。 - 该组件是否可以在
log_error_services值中多次列出 。 - 对于接收器组件,该组件将输出写入的目标。
- 对于接收器组件,它是否支持“性能模式”
error_log表的接口。
筛选错误日志组件
错误日志过滤器组件实现错误日志事件的过滤。如果未启用任何筛选器组件,则不会进行筛选。
任何启用的筛选器组件都只会影响log_error_services值中稍后列出的组件的日志事件 。特别是,对于任何log_error_services过滤器组件之前列出的任何日志接收 器组件,都不会发生日志事件过滤。
log_filter_internal组件
- 用途:基于日志事件优先级和错误代码,结合和
log_error_verbosity和log_error_suppression_list系统变量,实现过滤 。请参见 第5.4.2.5节“基于优先级的错误日志过滤(log_filter_internal)”。 - URN:此组件是内置的,
INSTALL COMPONENT在使用前无需加载 。 - 允许多次使用:否。
如果log_filter_internal被禁用, log_error_verbosity并且 log_error_suppression_list没有任何效果。
log_filter_dragnet组件
- 用途:根据
dragnet.log_error_filter_rules系统变量设置定义的规则实施过滤 。请参见 第5.4.2.6节“基于规则的错误日志过滤(log_filter_dragnet)”。 - 瓮:
file://component_log_filter_dragnet - 允许多次使用:否。
接收器错误日志组件
错误日志接收器组件是实现错误日志输出的编写器。如果未启用任何接收器组件,则不会发生日志输出。
一些接收器组件描述引用默认错误日志目标。这是控制台或文件,由log_error 系统变量的值指示,如 第5.4.2.2节“默认错误日志目标配置”中所述确定。
log_sink_internal组件
- 目的:实现传统的错误日志消息输出格式。
- URN:此组件是内置的,
INSTALL COMPONENT在使用前无需加载 。 - 允许多次使用:否。
- 输出目标:写入默认错误日志目标。
- 性能模式支持:写入
error_log表。提供一个解析器,以读取由先前服务器实例创建的错误日志文件。
log_sink_json组件
- 目的:实现JSON格式的错误日志记录。请参见 第5.4.2.7节“ JSON格式的错误记录”。
- 瓮:
file://component_log_sink_json - 允许多次使用:是。
- 输出目的地:JSON日志接收器根据默认错误日志目的地(由
log_error系统变量指定)确定其输出目的地 :- 如果
log_error命名文件,则JSON接收器将基于该文件名加上一个带编号的 后缀(从00开始)来命名输出文件 。例如,如果 为is ,则 值中连续的named 实例将写入 , 等等。.*NN*.jsonNNlog_errorfile_namelog_sink_jsonlog_error_services*file_name*.00.json``*file_name*.01.json - 如果
log_error为stderr,则JSON接收器将写入控制台。如果log_sink_json在log_error_services值中多次命名 它们,它们都将写入控制台,这可能没有用。
- 如果
- 性能模式支持:写入
error_log表。提供一个解析器,以读取由先前服务器实例创建的错误日志文件。
log_sink_syseventlog组件
- 目的:将错误记录到系统日志。这是Windows,
syslogUnix和类似Unix的系统上的事件日志。请参见 第5.4.2.8节“错误记录到系统日志”。 - 瓮:
file://component_log_sink_syseventlog - 允许多次使用:否。
- 输出目标:写入系统日志。不使用默认错误日志目标。
- 性能模式支持:不写入
error_log表。不提供用于读取由先前服务器实例创建的错误日志文件的解析器。
log_sink_test组件
- 目的:供编写测试用例的内部使用,而不用于生产。
- 瓮:
file://component_log_sink_test
接收器属性(例如是否允许多次使用以及未指定输出目的地)未指定, log_sink_test因为如上所述,它是供内部使用的。因此,其行为随时可能更改。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




