0
#include<systemd/sd-journal.h>

int main()
{
        sd_journal_print(LOG_WARNING, "Test message: Warning...");
        sd_journal_send("SD_JOURNAL_TEST=SEND Test message: Warning...", "PRIORITY=%i", LOG_WARNING, NULL);
}

编译:g++ sd-journal-test.cc -o sd-journal-test -lsystemd

$journalctl --since "0.2 hours ago"

显示:

Jun 30 18:45:01 preetam-Precision-M4800 sd-journal-test[23739]: Test message: Warning...

sd_journal_print 给出了一个没有行和其他数字的日志,而 sd_journal_Send 从未记录过。

这是什么原因,我该如何解决?

4

1 回答 1

0

您正在传递无效的格式化参数。sd_journal_send期望:

传递的字符串格式应为“VARIABLE=value”

正确使用:

    sd_journal_send("MESSAGE=Test message: Warning...", "SD_JOURNAL_TEST=SEND", "PRIORITY=%i", LOG_WARNING, NULL);
于 2020-07-05T06:24:31.323 回答