如何在syslog-ng目标文件路径中处理${PROGRAM}的斜杠
解决syslog-ng中PROGRAM字段含斜杠导致日志路径错误的问题
可以利用syslog-ng内置的replace()字符串替换函数,将${PROGRAM}中的斜杠/替换为下划线_,从而避免路径被错误分割。
修改后的完整配置
destination d_remote_logs { file( "/var/log/remote/${HOST_FROM}-$(replace ${PROGRAM} "/" "_").log" template("$(format-json --scope nv-pairs)\n") perm(0644) ); };
原理说明
$(replace ${PROGRAM} "/" "_")会将${PROGRAM}字段中的所有/字符替换为_- 当
${PROGRAM}的值为postfix/smtp时,替换后会变为postfix_smtp - 最终生成的日志路径会是
/var/log/remote/192.168.10.50-postfix_smtp.log,符合预期的文件路径格式
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

