diff options
author | Tanu Kaskinen <tanu.kaskinen@linux.intel.com> | 2013-06-20 17:24:28 +0300 |
---|---|---|
committer | Tanu Kaskinen <tanu.kaskinen@linux.intel.com> | 2013-07-15 16:47:29 +0300 |
commit | b5e1c06a5edd24db9ef905ecfb2849630b6527af (patch) | |
tree | 71e06b5dc0f64d8b9926b05319346915a924b5bb | |
parent | a1fdbcfaa77822bbfdcacb480fc2d75b95fa38aa (diff) | |
download | pulseaudio-b5e1c06a5edd24db9ef905ecfb2849630b6527af.tar.gz |
log: Harmonize log target output
The file targets used different output format than stderr and syslog.
That's now fixed.
-rw-r--r-- | src/pulsecore/log.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c index 49f1b5b0c..a25a7606c 100644 --- a/src/pulsecore/log.c +++ b/src/pulsecore/log.c @@ -466,12 +466,23 @@ void pa_log_levelv_meta( case PA_LOG_FILE: case PA_LOG_NEWFILE: { + char *local_t; + + if ((local_t = pa_utf8_to_locale(t))) + t = local_t; + if (log_fd >= 0) { char metadata[256]; - pa_snprintf(metadata, sizeof(metadata), "\n%c %s %s", level_to_char[level], timestamp, location); + if (_flags & PA_LOG_PRINT_LEVEL) + pa_snprintf(metadata, sizeof(metadata), "%s%c: %s", timestamp, level_to_char[level], location); + else + pa_snprintf(metadata, sizeof(metadata), "%s%s", timestamp, location); - if ((pa_write(log_fd, metadata, strlen(metadata), &write_type) < 0) || (pa_write(log_fd, t, strlen(t), &write_type) < 0)) { + if ((pa_write(log_fd, metadata, strlen(metadata), &write_type) < 0) + || (pa_write(log_fd, t, strlen(t), &write_type) < 0) + || (bt && pa_write(log_fd, bt, strlen(bt), &write_type) < 0) + || (pa_write(log_fd, "\n", 1, &write_type) < 0)) { pa_log_target new_target = { .type = PA_LOG_STDERR, .file = NULL }; saved_errno = errno; fprintf(stderr, "%s\n", "Error writing logs to a file descriptor. Redirect log messages to console."); @@ -480,6 +491,8 @@ void pa_log_levelv_meta( } } + pa_xfree(local_t); + break; } case PA_LOG_NULL: |