[pulseaudio-discuss] [PATCH 1/6] log: journal: Prevent duplicate values for CODE_* fields

Ahmed S. Darwish darwish.07 at gmail.com
Sun Mar 13 21:56:54 UTC 2016


sd_journal_send() implicitly add fields for the source file,
function name and code line from where it's invoked. As code
location fields CODE_FILE, CODE_LINE and CODE_FUNC are handled
by PA's log module, we do not want the automatic values
supplied by the sd_journal API.

Without suppressing these, both the actual log event source
and the call to sd_journal_send() will be logged:

    $ journalctl -b -f -o json-pretty
    [...]
    CODE_FILE : [ pulsecore/log.c, pulsecore/module.c ],
    CODE_LINE : [ 505, 181 ],
    MESSAGE   : Failed to load module module-gconf
    CODE_FUNC : [ pa_log_levelv_meta, pa_module_load ],
    [...]

(Commit log adapted from abrt libreport commit d1eaae97f0287f)

Signed-off-by: Ahmed S. Darwish <darwish.07 at gmail.com>
---
 src/pulsecore/log.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c
index 3c876f6..b5db818 100644
--- a/src/pulsecore/log.c
+++ b/src/pulsecore/log.c
@@ -39,6 +39,17 @@
 #endif
 
 #ifdef HAVE_SYSTEMD_JOURNAL
+
+/* sd_journal_send() implicitly add fields for the source file,
+ * function name and code line from where it's invoked. As the
+ * correct code location fields CODE_FILE, CODE_LINE and
+ * CODE_FUNC are already handled by this module, we do not want
+ * the automatic values supplied by the systemd journal API.
+ *
+ * Without suppressing these, both the actual log event source
+ * and the call to sd_journal_send() will be logged. */
+#define SD_JOURNAL_SUPPRESS_LOCATION
+
 #include <systemd/sd-journal.h>
 #endif
 

Regards,

--
Darwish
http://darwish.chasingpointers.com


More information about the pulseaudio-discuss mailing list