从 C++ 程序将输出发送到 systemd-journal

Send output to systemd-journal from C++ program

我有一些 Python 程序,我想将其转换为 C++11 代码,作为学习该语言的一种方式。目标平台为Debian,内核版本>=4.2(即systemd)。

在 Python 中,我可以使用 syslog module 将 debugging/logging 信息记录到系统日志中。 在 C 中我可以 #include <syslog.h>。但是,从 我了解到,对于当前的 C++ 实现,没有这样的实现(不再)。如果该程序是一个服务(或守护进程?),这显然会自动发生,尽管我不知道如何区分消息优先级。

我用 Google 搜索了一番,但找不到真正解决我的问题的方法:如何从 C++11 程序中向系统日志发送信息?

编辑:(举手投降 ;-) )由于似乎没有针对我的问题的本地解决方案,而且我仍处于学习 C++ 的起步阶段,我现在考虑使用 C i.s.o。 C++,因为 C 本机支持 syslog.h 的系统日志。

我会使用 SysLogAppender of Log4Cplus。但是问题和答案都是基于意见的等等

您还可以通过 sd_journal_send(3)sd_journal_print(3) c 函数将日志数据发送到 journald。

http://0pointer.de/blog/projects/journal-submit.html 提供了有关此主题的更多信息和示例。