Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


sd_journal_print(3) — Linux manual page

NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |THREAD SAFETY |NOTES |HISTORY |SEE ALSO |NOTES |COLOPHON

SD_JOURNAL_PRINT(3)          sd_journal_printSD_JOURNAL_PRINT(3)

NAME        top

       sd_journal_print, sd_journal_printv, sd_journal_send,       sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION,       sd_journal_print_with_location, sd_journal_printv_with_location,       sd_journal_send_with_location, sd_journal_sendv_with_location,       sd_journal_perror_with_location - Submit log entries to the       journal

SYNOPSIS        top

#include <systemd/sd-journal.h>int sd_journal_print(intpriority, const char *format, ...);int sd_journal_printv(intpriority, const char *format,va_listap);int sd_journal_send(const char *format, ...);int sd_journal_sendv(const struct iovec *iov, intn);int sd_journal_perror(const char *message);int sd_journal_print_with_location(intpriority, const char *file,const char *line,const char *func,const char *format, ...);int sd_journal_printv_with_location(intpriority,const char *file,const char *line,const char *func,const char *format,va_listap);int sd_journal_send_with_location(const char *file,const char *line,const char *func,const char *format, ...);int sd_journal_sendv_with_location(const char *file,const char *line,const char *func,const struct iovec *iov,intn);int sd_journal_perror_with_location(const char *file,const char *line,const char *func,const char *message);

DESCRIPTION        top

sd_journal_print()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 toprintf(3) orsyslog(3). Note that currently the       resulting message will be truncated toLINE_MAX - 8. The priority       value is one ofLOG_EMERG,LOG_ALERT,LOG_CRIT,LOG_ERR,LOG_WARNING,LOG_NOTICE,LOG_INFO,LOG_DEBUG, as defined in       syslog.h, seesyslog(3) 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). Empty lines       (after trailing whitespace removal) are suppressed. On non-empty       lines, leading whitespace (as well as inner whitespace) is left       unmodified.sd_journal_printv()is similar tosd_journal_print()but takes a       variable argument list encapsulated in an object of typeva_list       (seestdarg(3) for more information) instead of the format string.       It is otherwise equivalent in behavior.sd_journal_send()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 byNULL. The strings passed should be of the format "VARIABLE=value".       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, seesystemd.journal-fields(7) 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.sd_journal_sendv()is similar tosd_journal_send()but takes an       array ofstruct iovec (as defined in uio.h, seereadv(3) 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.sd_journal_sendv()is particularly useful to submit binary objects       to the journal where that is necessary. Note that this function       will not strip trailing whitespace of the passed fields, but       passes the specified data along unmodified. This is different from       bothsd_journal_print()andsd_journal_send()described above,       which are based on format strings, and do strip trailing       whitespace.sd_journal_perror()is a similar toperror(3) and writes a message       to the journal that consists of the passed string, suffixed with       ": " and a human-readable representation of the current error code       stored inerrno(3). If the message string is passed asNULLor       empty string, only the error string representation will be       written, prefixed with nothing. An additional journal field ERRNO=       is included in the entry containing the numeric error code       formatted as decimal string. The log priority used isLOG_ERR(3).       Note thatsd_journal_send()is a wrapper aroundsd_journal_sendv()       to make it easier to use when only text strings shall be       submitted. Also, the following two calls are mostly equivalent:           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);       Note that these calls implicitly add fields for the source file,       function name and code line where invoked. This is implemented       with macros. If this is not desired, it can be turned off by       definingSD_JOURNAL_SUPPRESS_LOCATIONbefore including       sd-journal.h.sd_journal_print_with_location(),sd_journal_printv_with_location(),sd_journal_send_with_location(),sd_journal_sendv_with_location(),       andsd_journal_perror_with_location()are similar to their       counterparts without "_with_location", but accept additional       parameters to explicitly set the source file name, function, and       line. The arguments "file" and "line" must contain valid journal       entries including the variable name, e.g.  "CODE_FILE=src/foo.c"       and "CODE_LINE=666", while "func" must only contain the function       name, i.e. the value without "CODE_FUNC=". These variants are       primarily useful when writing custom wrappers, for example in       bindings for a different language.syslog(3) andsd_journal_print()may largely be used       interchangeably functionality-wise. However, note that log       messages logged via the former take a different path to the       journal server than the later, and hence global chronological       ordering between the two streams cannot be guaranteed. Usingsd_journal_print()has the benefit of logging source code line,       filenames, and functions as metadata along all entries, and       guaranteeing chronological ordering with structured log entries       that are generated viasd_journal_send(). Usingsyslog()has the       benefit of being more portable.       These functions implement a client to theNative JournalProtocol[1].

RETURN VALUE        top

       The ten functions return 0 on success or a negative errno-style       error code. Theerrno(3) variable itself is not altered.       Ifsystemd-journald(8) is not running (the socket is not present),       those functions do nothing, and also return 0.

THREAD SAFETY        top

       All functions listed here are thread-safe and may be called in       parallel from multiple threads.sd_journal_sendv()andsd_journal_sendv_with_location()are "async       signal safe" in the meaning ofsignal-safety(7).sd_journal_print(),sd_journal_printv(),sd_journal_send(),sd_journal_perror(), and their counterparts with "_with_location"       are not async signal safe.

NOTES        top

       Functions described here are available as a shared library, which       can be compiled against and linked to with thelibsystemd pkg-config(1) file.       The code described here usesgetenv(3), which is declared to be       not multi-thread-safe. This means that the code calling the       functions described here must not callsetenv(3) from a parallel       thread. It is recommended to only do calls tosetenv()from an       early phase of the program when no other threads have been       started.

HISTORY        top

sd_journal_print(),sd_journal_printv(),sd_journal_send(), andsd_journal_sendv()were added in version 187.sd_journal_perror()was added in version 188.sd_journal_print_with_location(),sd_journal_printv_with_location(),sd_journal_send_with_location(),sd_journal_sendv_with_location(),       andsd_journal_perror_with_location()were added in version 246.

SEE ALSO        top

systemd(1),sd-journal(3),sd_journal_stream_fd(3),syslog(3),perror(3),errno(3),systemd.journal-fields(7),signal(7),socket(7)

NOTES        top

        1. Native Journal Protocolhttps://systemd.io/JOURNAL_NATIVE_PROTOCOL

COLOPHON        top

       This page is part of thesystemd (systemd system and service       manager) project.  Information about the project can be found at       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a       bug report for this manual page, see       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.       This page was obtained from the project's upstream Git repository       ⟨https://github.com/systemd/systemd.git⟩ on 2025-08-11.  (At that       time, the date of the most recent commit that was found in the       repository was 2025-08-11.)  If you discover any rendering       problems in this HTML version of the page, or you believe there is       a better or more up-to-date source for the page, or you have       corrections or improvements to the information in this COLOPHON       (which isnot part of the original manual page), send a mail to       man-pages@man7.orgsystemd 258~rc2SD_JOURNAL_PRINT(3)

Pages that refer to this page:sd-journal(3)sd_journal_stream_fd(3)org.freedesktop.LogControl1(5)systemd.exec(5)file-hierarchy(7)systemd.directives(7)systemd.index(7)systemd.journal-fields(7)systemd-journald.service(8)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp