首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送二进制数据的sd_journal_send。如何使用journalctl检索数据?

发送二进制数据的sd_journal_send。如何使用journalctl检索数据?
EN

Stack Overflow用户
提问于 2018-07-05 08:28:27
回答 1查看 324关注 0票数 0

我把systemd-journal看作是一种从外部处理器收集日志的方法。我对它在必要时收集二进制数据的能力非常感兴趣。

我现在只是在测试和调查日志。我很清楚还有其他可能更好的解决方案。

我像这样记录二进制数据:

代码语言:javascript
复制
// 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的文档似乎很少。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 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)才能获得原始内容:

代码语言:javascript
复制
journalctl  --output-fields=BINARY  MESSAGE_ID=12345  -o cat
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51182026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档