man: document that sd_journal_print() strips trailing whitespace

This commit is contained in:
Lennart Poettering 2016-07-01 17:10:26 -07:00
parent 8980058a37
commit 4c5db93f8a

View File

@ -93,27 +93,20 @@
<refsect1>
<title>Description</title>
<para><function>sd_journal_print()</function> may be used to
submit simple, plain text log entries to the system journal. The
first argument is a priority value. This is followed by a format
string and its parameters, similar to
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or
<para><function>sd_journal_print()</function> may be used to submit simple, plain text log entries to the system
journal. The first argument is a priority value. This is followed by a format string and its parameters, similar to
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry> or
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
The priority value is one of
<constant>LOG_EMERG</constant>,
<constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>,
<constant>LOG_ERR</constant>,
<constant>LOG_WARNING</constant>,
<constant>LOG_NOTICE</constant>,
<constant>LOG_INFO</constant>,
<constant>LOG_DEBUG</constant>, as defined in
<filename>syslog.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details. It is recommended to use this call to submit log
messages in the application locale or system locale and in UTF-8
format, but no such restrictions are enforced.</para>
The priority value is one of <constant>LOG_EMERG</constant>, <constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>, <constant>LOG_ERR</constant>, <constant>LOG_WARNING</constant>,
<constant>LOG_NOTICE</constant>, <constant>LOG_INFO</constant>, <constant>LOG_DEBUG</constant>, as defined in
<filename>syslog.h</filename>, see <citerefentry
project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry> for details. It is
recommended to use this call to submit log messages in the application locale or system locale and in UTF-8 format,
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>
<para><function>sd_journal_printv()</function> is similar to
<function>sd_journal_print()</function> but takes a variable
@ -123,35 +116,26 @@
for more information) instead of the format string. It is
otherwise equivalent in behavior.</para>
<para><function>sd_journal_send()</function> may be used to submit
structured log entries to the system journal. It takes a series of
format strings, each immediately followed by their associated
parameters, terminated by <constant>NULL</constant>. The strings
passed should be of the format <literal>VARIABLE=value</literal>.
The variable name must be in uppercase and consist only of
characters, numbers and underscores, and may not begin with an
underscore. (All assignments that do not follow this syntax will
be ignored.) The value can be of any size and format. It is highly
recommended to submit text strings formatted in the UTF-8
character encoding only, and submit binary fields only when
formatting in UTF-8 strings is not sensible. A number of
well-known fields are defined, see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details, but additional application defined fields may be
used. A variable may be assigned more than one value per
entry.</para>
<para><function>sd_journal_send()</function> may be used to submit structured log entries to the system journal. It
takes a series of format strings, each immediately followed by their associated parameters, terminated by
<constant>NULL</constant>. The strings passed should be of the format <literal>VARIABLE=value</literal>. The
variable name must be in uppercase and consist only of characters, numbers and underscores, and may not begin with
an underscore. (All assignments that do not follow this syntax will be ignored.) The value can be of any size and
format. It is highly recommended to submit text strings formatted in the UTF-8 character encoding only, and submit
binary fields only when formatting in UTF-8 strings is not sensible. A number of well-known fields are defined, see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
details, but additional application defined fields may be used. A variable may be assigned more than one value per
entry. If this function is used, trailing whitespace is automatically removed from each formatted field.</para>
<para><function>sd_journal_sendv()</function> is similar to
<function>sd_journal_send()</function> but takes an array of
<varname>struct iovec</varname> (as defined in
<filename>uio.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>readv</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details) instead of the format string. Each structure should
reference one field of the entry to submit. The second argument
specifies the number of structures in the array.
<function>sd_journal_sendv()</function> is particularly useful to
submit binary objects to the journal where that is
necessary.</para>
<para><function>sd_journal_sendv()</function> is similar to <function>sd_journal_send()</function> but takes an
array of <varname>struct iovec</varname> (as defined in <filename>uio.h</filename>, see <citerefentry
project='man-pages'><refentrytitle>readv</refentrytitle><manvolnum>3</manvolnum></citerefentry> for details)
instead of the format string. Each structure should reference one field of the entry to submit. The second argument
specifies the number of structures in the array. <function>sd_journal_sendv()</function> is particularly useful to
submit binary objects to the journal where that is necessary. Note that this function wil not strip trailing
whitespace of the passed fields, but passes the specified data along unmodified. This is different from both
<function>sd_journal_print()</function> and <function>sd_journal_send()</function> described above, which are based
on format strings, and do strip trailing whitespace.</para>
<para><function>sd_journal_perror()</function> is a similar to
<citerefentry project='die-net'><refentrytitle>perror</refentrytitle><manvolnum>3</manvolnum></citerefentry>
@ -174,8 +158,8 @@
<programlisting>sd_journal_print(LOG_INFO, "Hello World, this is PID %lu!", (unsigned long) getpid());
sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(),
"PRIORITY=%i", LOG_INFO,
NULL);</programlisting>
"PRIORITY=%i", LOG_INFO,
NULL);</programlisting>
<para>Note that these calls implicitly add fields for the source
file, function name and code line where invoked. This is