SD_JOURNAL_PRINT - Online Linux Manual PageSection : 3
Updated :
Source : systemd 250
Note : sd_journal_print

NAMEsd_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#include <systemd/sd−journal​.h>int sd_journal_print(int priority, const char *format, ​...); int sd_journal_printv(int priority, const char *format, va_list ap); int sd_journal_send(const char *format, ​...); int sd_journal_sendv(const struct iovec *iov, int n); int sd_journal_perror(const char *message); int sd_journal_print_with_location(const char *file, const char *line, const char *func, int priority, const char *format, ​...); int sd_journal_printv_with_location(int priority, const char *file, const char *line, const char *func, const char *format, va_list ap); 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, int n); int sd_journal_perror_with_location(const char *file, const char *line, const char *func, const char *message);

DESCRIPTIONsd_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 to printf(3) or syslog(3)​. Note that currently the resulting message will be truncated to LINE_MAX − 8​. The priority value is one of LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG, as defined in syslog​.h, see syslog(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 to sd_journal_print() but takes a variable argument list encapsulated in an object of type va_list (see stdarg(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 by NULL​. 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, see systemd.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 to sd_journal_send() but takes an array of struct iovec (as defined in uio​.h, see readv(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 both sd_journal_print() and sd_journal_send() described above, which are based on format strings, and do strip trailing whitespace​. sd_journal_perror() is a similar to perror(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 in errno(3)​. If the message string is passed as NULL or 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 is LOG_ERR (3)​. Note that sd_journal_send() is a wrapper around sd_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 defining SD_JOURNAL_SUPPRESS_LOCATION before including sd−journal​.h​. sd_journal_print_with_location(), sd_journal_printv_with_location(), sd_journal_send_with_location(), sd_journal_sendv_with_location(), and sd_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​. Those arguments must contain valid journal entries including the variable name, e​.g​. "CODE_FILE=src/foo​.c", "CODE_LINE=666", "CODE_FUNC=myfunc"​. These variants are primarily useful when writing custom wrappers, for example in bindings for a different language​. syslog(3) and sd_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​. Using sd_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 via sd_journal_send()​. Using syslog() has the benefit of being more portable​. These functions implement a client to the Native Journal Protocol[1]​.

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

THREAD SAFETYAll functions listed here are thread−safe and may be called in parallel from multiple threads​. sd_journal_sendv() and sd_journal_sendv_with_location() are "async signal safe" in the meaning of signal-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​.

NOTESThese APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd ​pkg-config(1) file​.

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

NOTES 1. Native Journal Protocol ­https://systemd.io/JOURNAL_NATIVE_PROTOCOL
0
Johanes Gumabo
Data Size   :   25,799 byte
man-sd_journal_print_with_location.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 180,225
Visitor ID   :     :  
Visitor IP   :   3.144.224.116   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.