diff options
| author | Lennart Poettering <lennart@poettering.net> | 2016-07-19 14:27:05 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2016-07-19 17:51:20 +0200 | 
| commit | 0d23bc57da6a3aeb1e7f92cfd7da2cd831b7c11c (patch) | |
| tree | cae77d07c8dfd6680e519300004a96f81bbf285e | |
| parent | 4c5db93f8a3fe5f332f07af0cf5d17260cb0e861 (diff) | |
sd-journal: suppress empty lines
Let's make sure our logging APIs is in sync with how stdout/stderr logging
works.
| -rw-r--r-- | man/sd_journal_print.xml | 3 | ||||
| -rw-r--r-- | src/journal/journal-send.c | 11 | 
2 files changed, 12 insertions, 2 deletions
| diff --git a/man/sd_journal_print.xml b/man/sd_journal_print.xml index 6fe078d88e..76542527fc 100644 --- a/man/sd_journal_print.xml +++ b/man/sd_journal_print.xml @@ -106,7 +106,8 @@      but no such restrictions are enforced. Note that log messages written using this function are generally not      expected to end in a new-line character. However, as all trailing whitespace (including spaces, new-lines,      tabulators and carriage returns) are automatically stripped from the logged string, it is acceptable to specify one -    (or more). Leading whitespace (as well as inner whitespace) is left unmodified however.</para> +    (or more). Empty lines (after trailing whitespace removal) are suppressed. On non-empty lines, leading whitespace +    (as well as inner whitespace) is left unmodified. </para>      <para><function>sd_journal_printv()</function> is similar to      <function>sd_journal_print()</function> but takes a variable diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index 1b92585488..440fba67ca 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -110,6 +110,10 @@ _public_ int sd_journal_printv(int priority, const char *format, va_list ap) {          /* Strip trailing whitespace, keep prefix whitespace. */          (void) strstrip(buffer); +        /* Suppress empty lines */ +        if (isempty(buffer+8)) +                return 0; +          zero(iov);          IOVEC_SET_STRING(iov[0], buffer);          IOVEC_SET_STRING(iov[1], p); @@ -476,7 +480,12 @@ _public_ int sd_journal_printv_with_location(int priority, const char *file, con          memcpy(buffer, "MESSAGE=", 8);          vsnprintf(buffer+8, sizeof(buffer) - 8, format, ap); -        (void) strstrip(buffer); /* strip trailing whitespace, keep prefixing whitespace */ +        /* Strip trailing whitespace, keep prefixing whitespace */ +        (void) strstrip(buffer); + +        /* Suppress empty lines */ +        if (isempty(buffer+8)) +                return 0;          /* func is initialized from __func__ which is not a macro, but           * a static const char[], hence cannot easily be prefixed with | 
