错误

源码

errors 可启用错误日志。

描述

查询过程中遇到的任何错误都将打印到标准输出。特定类型的错误可以合并,并且每隔一段时间打印一次。

此插件仅可在每个服务器块中使用一次。

语法

基本语法如下

errors

可使用扩展语法获得额外的设置。

errors {
	stacktrace
	consolidate DURATION REGEXP [LEVEL]
}

选项 stacktrace 将在恐慌恢复期间记录堆栈跟踪。

选项 consolidate 允许收集在 DURATION 间匹配正则表达式 REGEXP 的多个错误消息。从收到第一条此类消息起的 DURATION 后,合并后的消息将使用日志级别打印到标准输出,该日志级别可通过可选选项 LEVEL 进行配置。LEVEL 选项支持的选项有 warningerrorinfodebug

2 errors like '^read udp .* i/o timeout$' occurred in last 30s

允许使用带有不同 DURATIONREGEXP 的多个 consolidate 选项。如果某条错误消息与多个已定义的正则表达式匹配,则该消息将与第一个匹配的 REGEXP 关联。

为了获得更好的性能,建议在按前缀或后缀过滤错误消息(例如 ^failed to .*.* timeout$ 时在正则表达式中使用 ^$ 元字符。

示例

在 example.org 域中使用 whoami 来响应查询并记录错误到标准输出。

example.org {
    whoami
    errors
}

使用 forward 插件通过 8.8.8.8 解析查询,并为具有后缀“i/o timeout”的错误按警告方式打印合并的消息,以及为具有前缀“Failed to”的错误按错误方式打印合并的消息。

. {
    forward . 8.8.8.8
    errors {
        consolidate 5m ".* i/o timeout$" warning
        consolidate 30s "^Failed to .+"
    }
}