log_filter_dragnet日志过滤器组件能够基于用户定义的规则日志过滤。要定义适用的规则,请设置 dragnet.log_error_filter_rules 系统变量。
要启用log_filter_dragnet过滤器,请先加载过滤器组件,然后修改 log_error_services值。以下示例log_filter_dragnet 与内置日志编写器结合使用:
INSTALL COMPONENT 'file://component_log_filter_dragnet';
SET GLOBAL log_error_services = 'log_filter_dragnet; log_sink_internal';
要设置log_error_services为在服务器启动时生效。这些指令也适用于其他错误记录系统变量。
随着log_filter_dragnet启动,通过设置定义它的过滤规则 dragnet.log_error_filter_rules 系统变量。规则集由零个或多个规则组成,其中每个规则都是IF以句点(.)字符结尾的语句。如果变量值为空(零规则),则不会进行过滤。
示例1.此规则集删除信息事件,对于其他事件,删除该source_line字段:
SET GLOBAL dragnet.log_error_filter_rules =
'IF prio>=INFORMATION THEN drop. IF EXISTS source_line THEN unset source_line.';
效果类似于设置为的过滤器执行的 log_sink_internal过滤 log_error_verbosity=2。
示例2:此规则将信息事件限制为每60秒不超过一个:
SET GLOBAL dragnet.log_error_filter_rules =
'IF prio>=INFORMATION THEN throttle 1/60.';
设置完所需的过滤配置后,请考虑分配 dragnet.log_error_filter_rules 使用,SET PERSIST而不是 SET GLOBAL使设置在服务器重新启动后持续存在。或者,将设置添加到服务器选项文件。
要停止使用过滤语言,请首先从错误日志记录组件集中将其删除。通常,这意味着使用其他过滤器组件而不是不使用过滤器组件。例如:
SET GLOBAL log_error_services = 'log_filter_internal; log_sink_internal';
同样,请考虑使用using SET PERSIST而不是 SET GLOBAL使设置在服务器重新启动后保持不变。
然后卸载过滤器log_filter_dragnet 组件:
UNINSTALL COMPONENT 'file://component_log_filter_dragnet';