C++ sd_日志_发送以发送二进制数据。如何使用journalctl检索数据?
我将systemd journal视为从外部处理器收集日志的一种方法。我对它在必要时收集二进制数据的能力非常感兴趣 我现在只是在测试和调查这本杂志。我很清楚还有其他可能更好的解决方案 我正在记录二进制数据,如下所示:C++ sd_日志_发送以发送二进制数据。如何使用journalctl检索数据?,c++,linux,binary,systemd,systemd-journald,C++,Linux,Binary,Systemd,Systemd Journald,我将systemd journal视为从外部处理器收集日志的一种方法。我对它在必要时收集二进制数据的能力非常感兴趣 我现在只是在测试和调查这本杂志。我很清楚还有其他可能更好的解决方案 我正在记录二进制数据,如下所示: // strData is a string container containing binary data strData += '\0'; sd_journal_send( "MESSAGE=test_msg", "MESSAGE_ID=12345",
// 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消息\u ID=12345
我可以从终端获取日志中所有日志的二进制数据,如下所示:
journalctl--field=BINARY
我需要把二进制数据放到一个文件中,这样我就可以从程序中访问并解码它。我该怎么做
这不起作用:
journalctl--field=BINARY MESSAGE\u ID=12345
我有一个错误:
“以'MESSAGE_ID=123456789987654321'开头的无关参数”
有什么建议吗?systemd日志上的文档似乎不多。提前谢谢。你选错了。有关以下内容,请参阅文档: vs 您还必须指定普通输出格式(
-o cat
)以获取原始内容:
journalctl --output-fields=BINARY MESSAGE_ID=12345 -o cat
我正在运行16.04.4 Ubuntu,看起来我已经安装了Systemd229。229似乎不支持--output字段。我现在想知道如何升级。
--output-fields=
A comma separated list of the fields which should be included in the output.
journalctl --output-fields=BINARY MESSAGE_ID=12345 -o cat