0

我拼命地尝试将消息作为 JSON 发送到 PHP 脚本。

destination d_php {
program("/usr/bin/php -f /data/htdocs/log.php" template("$(format-json)\n")  ) ;
};

php脚本很好。使用简单的宏效果很好,但“format-json”函数总是返回这个:

模板错误:$(format-json)

我尝试了在文档中可以找到的所有内容,但我得到的所有响应都是“模板错误”。官方文档(链接)甚至使用 2 种不同的拼写,不是很有希望。

有任何想法吗?

4

3 回答 3

0

format-json 和 format_json 语法应该都可以工作,连字符和下划线在 syslog-ng 中是等效的。至于实际问题,你有没有试过设置format-json的范围参数,比如“$(format_json --scope selected_macros)”?默认情况下,它是空的,这意味着没有要格式化的内容。

高温下,

问候,

罗伯特·费克特

于 2013-07-18T12:48:12.257 回答
0

找到了原因。显然, syslog-ng 在 Ubuntu (12) 上被分成单独的包。我不得不安装syslog-ng-mod-json.

很遗憾 syslog-ng 没有给出函数丢失或未知的任何提示,而不是一些一般错误。

于 2013-08-14T06:12:32.220 回答
0

如果从源代码编译,则应先安装 json-c 库(yum install json-c-devel)。

于 2016-07-25T22:30:59.683 回答