xo_syslog - Man Page

create SYSLOG (RFC5424) log records using libxo formatting

Library

Text, XML, JSON, and HTML Output Emission Library (libxo, -lxo)

Synopsis

#include <libxo/xo.h>

void
xo_syslog(int pri, const char *name, const char *fmt, ...);

void
xo_vsyslog(int pri, const char *name, const char *fmt, va_list vap);

void
xo_close_log(void);

void
xo_open_log(const char *ident, int logstat, int logfac);

int
xo_set_logmask(int pmask);

Description

The xo_syslog() function creates log entries following the standard defined in RFC5424. These messages are sent to the log syslogd(8) daemon, where they can be filtered, forwarded, and archived. libxo format strings are used to create both the message text and the SD-PARAMS content, containing name/value pairs that can be parsed by suitable automation software.

Refer to xo_format(5) for basic information about formatting strings. xo_syslog encodes all value fields at SD-PARAMS within the syslog message. An exception is made for fields with the "{d:}" modifier; such fields appear in the message text only, with fields with the "{e:}" modifier appear as SD-PARAMS, but not in the message text.

xo_vsyslog() accepts a va_list for additional flexibility.

xo_open_log(), xo_close_log(), and xo_set_logmask() are all analogous to their libs counterparts, openlog(3), closelog(3), and setlogmask(3). The extra underscores in the names are unfortunate, but keep consistency in libxo function names.

Examples

    xo_syslog(LOG_LOCAL4 | LOG_NOTICE, "ID47",
              "{e:iut/%u}An {:event-source} {:event-id/%u} log entry",
              iut, source, id);

See Also

xo_syslog(3), xo_set_syslog_enterprise_id(3), xo_format(5), libxo(3)

History

The libxo library first appeared in FreeBSD 11.0.

Authors

libxo was written by Phil Shafer <phil@freebsd.org>.

Additional Documentation

FreeBSD uses libxo version 1.6.0. Complete documentation can be found on github:

https://juniper.github.io/libxo/1.6.0/html/index.html

libxo lives on github as:

https://github.com/Juniper/libxo

The latest release of libxo is available at:

https://github.com/Juniper/libxo/releases

History

The libxo library was added in FreeBSD 11.0.

Author

Phil Shafer

Referenced By

libxo(3), xo_set_flags(3), xo_set_syslog_enterprise_id(3).

July 20, 2015