我把systemd-journal看作是一种从外部处理器收集日志的方法。我对它在必要时收集二进制数据的能力非常感兴趣。
我现在只是在测试和调查日志。我很清楚还有其他可能更好的解决方案。
我像这样记录二进制数据:
// strData is a string container containing binary data
strData += '\0';
sd_journal_send(
"MESSAGE=test_msg",
"MESSAGE_ID=12345",
"BINARY=%s", strData.c_str(),
NULL);使用journalctl工具时,会显示日志线。我可以在终端中找到像这样的日志行:
journalctl MESSAGE_ID=12345
我可以从终端获取日志中所有日志的二进制数据,如下所示:
journalctl --field=BINARY
我需要将二进制数据放到一个文件中,这样我就可以从程序中访问并解码它。我该怎么做呢?
这不起作用:
journalctl --field=BINARY MESSAGE_ID=12345
我得到了错误:
“以‘MESSAGE_ID=1234567890987654321’开头的无关参数”
有什么建议吗?关于systemd-journal的文档似乎很少。提前谢谢。
发布于 2018-07-06 02:23:39
你只是选错了。请参阅以下文档:
-F, --field= Print all possible data values the specified field can take in all entries of the journal.
vs
--output-fields= A comma separated list of the fields which should be included in the output.
您还必须指定普通输出格式(-o cat)才能获得原始内容:
journalctl --output-fields=BINARY MESSAGE_ID=12345 -o cathttps://stackoverflow.com/questions/51182026
复制相似问题