diff options
author | Jan Kundrát <jan.kundrat@cesnet.cz> | 2019-10-30 12:51:07 +0300 |
---|---|---|
committer | Jan Kundrát <jan.kundrat@cesnet.cz> | 2019-10-30 22:08:30 +0300 |
commit | 17513a6dce1b9c8f54885efa3d6764e5b46fe59d (patch) | |
tree | 9cdf7397e07a3af5fc80e1ce9e92b4233c156b78 /include | |
parent | a44560ddb60a5bfc0a8927207c798209883f4dbb (diff) |
journald: structured output for logger's name
Previously, the logger name was effectively lost. There were two choices
on how to add it:
- Via a formatter, which would mean that `journalctl` would not be able
to filter against that. That would be suboptimal.
- As a "syslog identifier". This means that `journalctl` will, by
default, stop showing the daemon's executable name and replace that via
the logger name. The PID is still shown, and if one would like to go
back to the previous behavior, it is still possible via `journalctl -o
with-unit`.
I think that the second option is strictly better than the first one.
fixes #1289
Diffstat (limited to 'include')
-rw-r--r-- | include/spdlog/sinks/systemd_sink.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/spdlog/sinks/systemd_sink.h b/include/spdlog/sinks/systemd_sink.h index a9867a6f..2887e58e 100644 --- a/include/spdlog/sinks/systemd_sink.h +++ b/include/spdlog/sinks/systemd_sink.h @@ -61,11 +61,13 @@ protected: { // Note: function call inside '()' to avoid macro expansion err = (sd_journal_send)( - "MESSAGE=%.*s", static_cast<int>(length), msg.payload.data(), "PRIORITY=%d", syslog_level(msg.level), nullptr); + "MESSAGE=%.*s", static_cast<int>(length), msg.payload.data(), "PRIORITY=%d", syslog_level(msg.level), + "SYSLOG_IDENTIFIER=%.*s", static_cast<int>(msg.logger_name.size()), msg.logger_name.data(), nullptr); } else { err = (sd_journal_send)("MESSAGE=%.*s", static_cast<int>(length), msg.payload.data(), "PRIORITY=%d", syslog_level(msg.level), + "SYSLOG_IDENTIFIER=%.*s", static_cast<int>(msg.logger_name.size()), msg.logger_name.data(), "CODE_FILE=%s", msg.source.filename, "CODE_LINE=%d", msg.source.line, "CODE_FUNC=%s", msg.source.funcname, nullptr); } |