int flux_vlog (flux_t *h, int level, const char *fmt, va_list ap);
int flux_log (flux_t *h, int level, const char *fmt, …);
void flux_log_set_appname (flux_t *h, const char *s);
void flux_log_set_procid (flux_t *h, const char *s);
flux_log() creates RFC 5424 format log messages. The log messages
are sent to the Flux message broker on h for handling if it is
specified. If h is NULL, the log message is output to stderr.
The level parameter should be set to one of the syslog(3) severity levels, which are, in order of decreasing importance:
- system is unusable
- action must be taken immediately
- critical conditions
- error conditions
- warning conditions
- normal, but significant, condition
- informational message
- debug-level message
When h is specified, log messages are are added to the broker's circular buffer which can be accessed with flux-dmesg(3). From there, a message's disposition is up to the broker's log configuration.
flux_log_set_procid() may be used to override the default procid,
which is initialized to the calling process's PID.
flux_log_set_appname() may be used to override the default
application name, which is initialized to the value of the __progname
symbol (normally the argv program name).
MAPPING TO SYSLOG¶
A Flux log message is formatted as a Flux request with a "raw" payload, as defined by Flux RFC 3. The raw payload is formatted according to Internet RFC 5424.
If the Flux handle h is specified, the following Syslog header
fields are set in a Flux log messages when it is created within
- Set to the user-specified severity level combined with the facility, which is hardwired to LOG_USER in Flux log messages.
- Set to 1.
- Set to the current UTC wallclock time.
- Set to the broker rank associated with h.
- Set to the user-defined application name, truncated to 48 characters, excluding terminating NULL.
- Set to the PID of the calling process.
- Set to the NIL string "-".
The STRUCTURED-DATA portion of the message is empty, and reserved for future use by Flux.
The MSG portion is post-processed to ensure it contains no NULL's or non-ASCII
characters. At this time non-ASCII UTF-8 is not supported by
flux_log() normally returns 0 on success, or -1 if there was
a problem building or sending the log message, with errno set.
- The user does not have permission to log messages to this Flux instance.
- Out of memory.