如果目录存在则切换 rsyslog 目标文件

如果目录存在则切换 rsyslog 目标文件

我已配置 rsyslog 服务器将日志从某些远程主机发送到我的应用程序目录中的特定文件,如下所示:

$template TmplApplication, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then  {
-?TmplApplication
stop
}

因此,例如来自的日志1.2.3.4将被发送到/whatever/jboss/logs/1.2.3.4/sum.log

但现在,我正在将应用程序从 jboss 更改为 wildfly,因此我将目录名称从 更改/whatever/jboss/logs//whatever/wildfly/logs.

我更愿意使其向后兼容,这样如果 jboss 目录存在,它会将日志转发到 jboss 目录,否则转发到 wildfly 目录。所以,像下面这样:

$template TmplApplication1, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
$template TmplApplication2, "/whatever/wildfly/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then  {
  if /whatever/jboss exists then {
    -?TmplApplication1
    stop
  } else
    -?TmplApplication2
    stop
  }
}

显然这是行不通的。知道正确的语法是什么吗?

相关内容