diff options
-rw-r--r-- | config.tests/unix/journald/journald.c | 8 | ||||
-rw-r--r-- | src/corelib/global/qlogging.cpp | 16 |
2 files changed, 16 insertions, 8 deletions
diff --git a/config.tests/unix/journald/journald.c b/config.tests/unix/journald/journald.c index 470d526e68..32f0de683b 100644 --- a/config.tests/unix/journald/journald.c +++ b/config.tests/unix/journald/journald.c @@ -40,9 +40,15 @@ ****************************************************************************/ #include <systemd/sd-journal.h> +#include <syslog.h> int main(int argc, char **argv) { - sd_journal_print_with_location(LOG_INFO, "CODE_FILE=foo.c", "CODE_LINE=0", "unknown_function", "test message"); + sd_journal_send("MESSAGE=%s", "test message", + "PRIORITY=%i", LOG_INFO, + "CODE_FUNC=%s", "unknown", + "CODE_LINE=%d", 0, + "CODE_FILE=%s", "foo.c", + NULL); return 0; } diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 8c1d8b867d..da26490d18 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -64,7 +64,9 @@ #endif #if defined(QT_USE_JOURNALD) && !defined(QT_BOOTSTRAPPED) +# define SD_JOURNAL_SUPPRESS_LOCATION # include <systemd/sd-journal.h> +# include <syslog.h> # include <unistd.h> #endif @@ -1170,13 +1172,13 @@ static void systemd_default_message_handler(QtMsgType type, break; } - char filebuf[PATH_MAX + sizeof("CODE_FILE=")]; - snprintf(filebuf, sizeof(filebuf), "CODE_FILE=%s", context.file ? context.file : "unknown"); - - char linebuf[20]; - snprintf(linebuf, sizeof(linebuf), "CODE_LINE=%d", context.line); - - sd_journal_print_with_location(priority, filebuf, linebuf, context.function ? context.function : "unknown", "%s", message.toUtf8().constData()); + sd_journal_send("MESSAGE=%s", message.toUtf8().constData(), + "PRIORITY=%i", priority, + "CODE_FUNC=%s", context.function ? context.function : "unknown", + "CODE_LINE=%d", context.line, + "CODE_FILE=%s", context.file ? context.file : "unknown", + "QT_CATEGORY=%s", context.category ? context.category : "unknown", + NULL); } #endif |