[pulseaudio-discuss] [PATCH] pulsecore: Introduce PULSE_LOG_JOURNAL environment variable
David Henningsson
david.henningsson at canonical.com
Wed Sep 16 02:36:53 PDT 2015
Due to this patch, my build (of -next) is now broken:
../../src/pulsecore/log.c: In function 'init_defaults':
../../src/pulsecore/log.c:298:31: error: 'PA_LOG_JOURNAL' undeclared
(first use in this function)
target_override = PA_LOG_JOURNAL;
^
...probably because I don't HAVE_SYSTEMD_JOURNAL.
I kind of feel it would be better to have PA_LOG_JOURNAL always defined
than to add ifdefs every where we use it, but I'm open for either
option. Any opinions?
On 2015-08-14 18:47, Ahmed S. Darwish wrote:
> By introducing such an environment variable, applications using the
> PA client libraries can configure these libraries to send their logs
> directly to the journal.
>
> While client libraries journal logging can be indirectly achieved
> using PULSE_LOG_SYSLOG, this pollutes the journal. Meta data gets
> replicated twice: once in the journal meta fields and once in the
> syslog(3) plain-text message itself.
>
> For attaching any backtraces, also introduce the PA-specific journal
> meta field PULSE_BACKTRACE. This is the recommend journal practice
> instead of appending any furuther data to the logging message itself.
>
> Signed-off-by: Ahmed S. Darwish <darwish.07 at gmail.com>
> ---
> src/pulse/pulseaudio.h | 8 ++++++++
> src/pulsecore/log.c | 7 +++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/src/pulse/pulseaudio.h b/src/pulse/pulseaudio.h
> index f5c5b0d..5077e3b 100644
> --- a/src/pulse/pulseaudio.h
> +++ b/src/pulse/pulseaudio.h
> @@ -140,6 +140,14 @@
> * - `PULSE_LOG_SYSLOG`: If defined, force all client libraries to log
> * their output using the syslog(3) mechanism. Default behavior is to
> * log all output to stderr.
> + * - `PULSE_LOG_JOURNAL`: If defined, force all client libraries to log
> + * their output using the systemd journal. If both `PULSE_LOG_JOURNAL`
> + * and `PULSE_LOG_SYSLOG` are defined, logging to the systemd journal
> + * takes a higher precedence. Each message originating library file name
> + * and function are included by default through the journal fields
> + * `CODE_FILE`, `CODE_FUNC`, and `CODE_LINE`. Any backtrace attached to
> + * the logging message is sent through the PulseAudio-specific journal
> + * field `PULSE_BACKTRACE`.
> * - `PULSE_LOG_COLORS`: If defined, enables colored logging output.
> * - `PULSE_LOG_TIME`: If defined, include timestamps with each message.
> * - `PULSE_LOG_FILE`: If defined, include each message originating file
> diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c
> index 552d416..34ed041 100644
> --- a/src/pulsecore/log.c
> +++ b/src/pulsecore/log.c
> @@ -60,6 +60,7 @@
> #include "log.h"
>
> #define ENV_LOG_SYSLOG "PULSE_LOG_SYSLOG"
> +#define ENV_LOG_JOURNAL "PULSE_LOG_JOURNAL"
> #define ENV_LOG_LEVEL "PULSE_LOG"
> #define ENV_LOG_COLORS "PULSE_LOG_COLORS"
> #define ENV_LOG_PRINT_TIME "PULSE_LOG_TIME"
> @@ -293,6 +294,11 @@ static void init_defaults(void) {
> target_override_set = true;
> }
>
> + if (getenv(ENV_LOG_JOURNAL)) {
> + target_override = PA_LOG_JOURNAL;
> + target_override_set = true;
> + }
> +
> if ((e = getenv(ENV_LOG_LEVEL))) {
> maximum_level_override = (pa_log_level_t) atoi(e);
>
> @@ -493,6 +499,7 @@ void pa_log_levelv_meta(
> "CODE_FILE=%s", file,
> "CODE_FUNC=%s", func,
> "CODE_LINE=%d", line,
> + "PULSE_BACKTRACE=%s", pa_strempty(bt),
> NULL) < 0) {
> #ifdef HAVE_SYSLOG_H
> pa_log_target new_target = { .type = PA_LOG_SYSLOG, .file = NULL };
>
> Regards,
>
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
More information about the pulseaudio-discuss
mailing list