적절한 rsyslog 구성

적절한 rsyslog 구성

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"}

모든 메시지는 하나의 큰 줄의 일부입니다. 한 줄이 아닌 여러 줄을 가지려면 구성/프로그램에서 무엇을 변경해야 합니까?

관련 정보