有没有办法让 BIND 的所有启动消息都进入配置文件中命名的日志?例如,在 named.conf 中,我有:
logging {
channel qlog {
file "/etc/bind/named.log";
severity debug 2;
print-time yes;
print-severity yes;
print-category yes;
};
category default { qlog; };
};
“默认”类别应该会获取其他类别中不会发生的所有日志记录。但是,当我启动命名时,我会在 /var/log/daemon.log 中收到一堆消息,然后在命名文件中收到更多消息。我希望它们全部进入命名文件,这样我就不必在启动时查看两个地方来找出可能出错的地方。
答案1
在 BIND 9 中,只有解析了整个配置文件后才会建立日志配置。在 BIND 8 中,解析日志语句后就会立即建立日志配置。服务器启动时,所有与配置文件中的语法错误有关的日志消息都会发送到默认通道,如果指定了“-g”选项,则会发送到标准错误。
这个限制通常不是一个问题,因为named-checkconf -zj
(或作为常规工作流程的一部分的其他配置检查变化)会在您(重新)启动之前很久就捕获任何语法错误named
。
顺便提一下,你选择的日志文件路径 ( /etc/bind/named.log
) 看起来相当奇怪。一般来说,你不会希望日志文件位于 中/etc
,或者让/etc/bind
运行该服务的用户可写入。