使用 Syslog 路由到文件的问题

Issue with routing to files w/ Syslog

我正在尝试设置系统日志,以便我们可以让我们的应用程序在不同的环境中记录到不同的文件。

我们的开发环境一切正常,但我们的临时环境没有日志。

这是我们配置文件的片段,01-app.conf

# staging
if ($programname == "api-staging") then {
  action(type="omfile" file="/var/log/staging/api.log")
  stop
}

# development
if ($programname == "api-development") then {
  action(type="omfile" file="/var/log/development/api.log")
  stop
}

user.* /var/log/other/user.log
stop

我的配置文件以 01 开头,因为如果应用程序日志在我们自己之前尊重 default 配置,则会转到多个位置。

鉴于开发日志已正确路由并且从暂存规则中删除 stop 会将日志发送到 /var/log/other/user.log,我非常有信心将日志发送到盒子本身,但不知何故是路由问题。

来自 /var/log/other/user.log 的示例日志应该在 /var/log/staging/api.log 中是这样的:

Sep 14 17:28:33 RD0003FF77E220 api-staging[58340]: "...",所以我知道我在配置中寻找的 programname 是正确的名称。

syslog 用户无权访问 staging 目录,因此无法将日志写入该目录。