![適切なrsyslog設定](https://rvso.com/image/782595/%E9%81%A9%E5%88%87%E3%81%AArsyslog%E8%A8%AD%E5%AE%9A.png)
私は Debian 8 (Jessie) を使用しており、ログにメッセージを書き込む必要があります。syslog に送信するプログラムがあるとします。
#include <syslog.h>
int main()
{
openlog("progname", LOG_CONS, LOG_USER);
const char* msg = "{\"dt\":\"1670932865\",\"msg\":\"OK\"}";
syslog(LOG_INFO, "%s", msg);
closelog();
}
一部の/etc/rsyslog.conf
:
template(name="outfmt" type="list") {
property(name="msg")
}
if $programname startswith "progname" then {
action(type="omfile" file="/path/to/file.log" template="outfmt")
& stop
}
ログファイルには次のように表示されます:
{"dt":"1670932865","msg":"OK"} {"dt":"1670932865","msg":"OK"}
すべてのメッセージは 1 行の大きな部分です。1 行ではなく複数行にするには、構成/プログラムで何を変更する必要がありますか?