错误日志以JSON格式记录

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年7月28日 (五) 09:08的版本 (创建页面,内容为“本节描述了如何使用内置的过滤器log_filter_internal和JSON接收器log_sink_json来配置错误日志记录,以立即生效并在后续服务器启动时保留配置。 要启用JSON接收器,请首先加载接收器组件,然后修改log_error_services值: INSTALL COMPONENT 'file://component_log_sink_json'; SET PERSIST log_error_services = 'log_filter_internal; log_sink_json'; 在log_error_services值中多次命名log_sink_json是…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

本节描述了如何使用内置的过滤器log_filter_internal和JSON接收器log_sink_json来配置错误日志记录,以立即生效并在后续服务器启动时保留配置。


要启用JSON接收器,请首先加载接收器组件,然后修改log_error_services值:

INSTALL COMPONENT 'file://component_log_sink_json';
SET PERSIST log_error_services = 'log_filter_internal; log_sink_json';


在log_error_services值中多次命名log_sink_json是允许的。例如,要使用一个实例写入未经过滤的事件,使用另一个实例写入经过过滤的事件,可以像这样设置log_error_services:

SET PERSIST log_error_services = 'log_sink_json; log_filter_internal; log_sink_json';


JSON接收器根据默认的错误日志目标确定其输出目的地,该目标由log_error系统变量给出。如果log_error指定了一个文件,JSON接收器将基于该文件名进行输出文件命名,后面加上以.00.json为起始的编号后缀。例如,如果log_error是file_name,则在log_error_services值中命名的连续实例将写入file_name.00.json、file_name.01.json等文件。


如果log_error是stderr,则JSON接收器将写入控制台。如果在log_error_services值中多次命名log_sink_json,则它们都将写入控制台,这可能没有什么用处。