Application Programming Interface --------------------------------- The EventLog library implements a set of functions to construct, format and output event records. The public symbols are defined in the header file named , for a list and documentation of functions please consult that file as it contains inline function descriptions in gtk-doc format. It is very important to use consistent tag naming and that different applications use identify the same data with the same tag name. Therefore please use the predefined tag name if one is available. Predefined tag names are defined in the header file . This header is included by therefore you will not need to reference it explicitly. A third header file named "evt_internals.h" is defines the internals of the EventLog library. Please do not depend on its contents and don't include it directly. As this header file is not meant to be used in applications, it is not installed when the library is installed. Syslog compatibility -------------------- Most UNIX systems and therefore the programs running under UNIX use the syslog() API found in the libc for logging. Because of the large installed base it is worth supporting legacy applications before they are converted to use EventLog. Two different implementations of syslog compatibility is provided: macro and linker based. * Macro based compatibility This works by defining the syslog() function names as macros to refer to the compatibility functions found in EventLog. To use the macro based wrapper you will need to recompile the program from source: $ cc -DEVENTLOG_SYSLOG_MACROS syslogapp.c -levtlog * Linker based compatibility Some dynamic linker implementations (most notably: Linux and Solaris) support symbol overloading. EventLog can use this feature if the dlsym() function is present which supports RTLD_NEXT to fetch symbols hidden by EventLog itself. To enable this wrapper configure EventLog with the --enable-dlsym-wrapper configure option. To use the wrapper you simply need to preload the event log shared object like: $ LD_PRELOAD=/usr/lib/libeventlog.so.0 syslogapp Where syslogapp is the program to be run. As you can see the application itself did not need to be recompiled.