【问题标题】:sd_journal_print is not logging properlysd_journal_print 未正确记录
【发布时间】:2020-07-01 02:02:42
【问题描述】:
#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 从未记录。

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

【问题讨论】:

    标签: linux logging systemd systemd-journald


    【解决方案1】:

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

    传递的字符串应该是格式 “变量=值”

    正确使用:

        sd_journal_send("MESSAGE=Test message: Warning...", "SD_JOURNAL_TEST=SEND", "PRIORITY=%i", LOG_WARNING, NULL);
    

    【讨论】:

    • 我认为 VARIABLE 是我想要提供的任何东西?是专门的“MESSAGE”吗?
    • man systemd.journal-fields(7): MESSAGE= 此条目的人类可读消息字符串。这应该是向用户显示的主要文本。它通常不会被翻译(但在某些情况下可能会),并且不应该被解析为元数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多