使用 syslog-ng 根据应用程序命名日志文件

使用 syslog-ng 根据应用程序命名日志文件

我正在使用 syslog-ng,目前我的配置仅根据 IP 地址和设备分离日志文件:

source s_network_udp {
  syslog(transport(udp) port(514));
};

destination d_local {
  file("/var/log/${HOST}/${FACILITY}.log" create_dirs(yes));
};

log {
  source(s_network_udp);
  destination(d_local);
};

这给了我这个:

./0.0.0.1/daemon.log
./0.0.0.1/user.log
./0.0.0.1/kern.log
./0.0.0.2/daemon.log
./0.0.0.2/user.log
./0.0.0.2/kern.log
./0.0.0.3/daemon.log
./0.0.0.3/user.log
./0.0.0.3/kern.log
./0.0.0.4/daemon.log
./0.0.0.4/user.log
./0.0.0.4/kern.log

这些daemon.log文件有如下行:

Sep  2 23:19:33 hostname systemd-resolved[1290]: etc
Sep  2 23:20:01 hostname CRON[2342925]: etc
Sep  2 23:20:01 hostname CRON[2342924]: etc2

有没有办法让 syslog-ng 为每个process[1]:(而不是仅为守护进程、用户、内核)创建一个文件?

相关内容