Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send output to systemd-journal from C++ program

Tags:

c++11

journal

I have some Python programs that I'd like to convert to C++11 code as a way of learning the language. The target platform is Debian, kernel version >=4.2 (i.e. systemd).

In Python I can log debugging/logging information to the system log using the syslog module. In C I would be able to #include <syslog.h>. But, from this article I understand that for the current C++ implementation there is no such implementation (anymore). If the program is a service (or daemon?) this would apparently happen automagically although I don't gather how the message priority would be distinguished.

I've Googled around but can't really find a solution to my problem: How do I send information to the system log from within a C++11 program?

EDIT: (throws hands in the air and gives up ;-) ) Since there doesn't seem to be a native solution to my problem and I'm still in the starting phase of learning C++, I now consider to use C i.s.o. C++ since C natively supports syslog with syslog.h.

like image 221
Mausy5043 Avatar asked Nov 03 '15 17:11

Mausy5043


1 Answers

You can also send log data to journald via the sd_journal_send(3) or sd_journal_print(3) c-functions.

http://0pointer.de/blog/projects/journal-submit.html gives more info and examples on this topic.

like image 152
schnitzi Avatar answered Oct 23 '22 04:10

schnitzi