Overview -------- This library was designed to support several event formats and multiple means of delivering messages. Therefore the process of sending a message to a log is separated to three independent parts: * Building the event record This is done by the application program using the library. It is a sequence of calling the following functions: evt_rec_init(...) evt_tag_str(...) / evt_tag_int(...) / evt_tag_printf(...) evt_log(...) /* consumes the log record, no need to free it */ The event record itself consists of the following properties: - a simple, constant human readable description of the event - an unordered set of tag/value pairs - a syslog compatible priority value (debug .. emerg) The record initialized by evt_rec_init() may contain a couple of tags by default (like pid, timestamp etc.) * Formatting the event record The way an event is formatted can be customized by the administrator. Several simple formats are available within the library, each having a unique identifier. The administrator refers to one of the formatters by using the "format" keyword in the /etc/eventlog.conf file. See the file configuration.txt to see the list of valid formatters. * Logging the event record The way an event record is sent to the log might also be customized by the administrator. Currently a single output method is implemented named 'local' which sends the message off by using syslog(). Additional methods are planned to be implemented like: - file - UDP syslog protocol (RFC3164) - plain TCP syslog protocol (as used by syslog-ng) - RFC3195