#ifndef LNLOG_H
#define LNLOG_H
#include <stdarg.h>
/* severities */
/* in analogy to syslog levels, are passed on to syslog */
#if 0
#define LNLOG_SEMERG 0 /* system is unusable */
#define LNLOG_SALERT 1 /* action must be taken immediately */
#endif
#define LNLOG_SCRIT 2 /* critical conditions */
#define LNLOG_SERR 3 /* * error conditions */
#define LNLOG_SWARNING 4 /* * warning conditions */
#define LNLOG_SNOTICE 5 /* * normal but significant condition */
#define LNLOG_SINFO 6 /* * informational */
#define LNLOG_SDEBUG 7 /* * debug-level messages */
#define LNLOG_SMIN 2 /* minimal used severity */
/* contexts */
/* define the context the log message occurs in
think of it as "verbose level" */
#define LNLOG_CTOP 1 /* top level, always log */
#define LNLOG_CSERVER 2 /* server context */
#define LNLOG_CGROUP 3 /* group context */
#define LNLOG_CARTICLE 4 /* article context */
#define LNLOG_CALL 5 /* most verbose */
/* IMPORT */
extern int verbose;
/* EXPORT */
extern void ln_log_open(const char *ident); /** open log, use \a ident as log tag */
extern void ln_log_use_console(int en); /** allow logging to console depending on \a en */
/* log to stderr and syslog */
extern void ln_log(int severity, int context, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 3, 4)))
#endif
;
/* log to stdout and syslog */
extern void ln_log_so(int severity, int context, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 3, 4)))
#endif
;
/* log to stderr only */
extern void ln_log_prt(int severity, int context, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 3, 4)))
#endif
;
/* log to syslog only */
extern void ln_log_sys(int severity, int context, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 3, 4)))
#endif
;
#endif
syntax highlighted by Code2HTML, v. 0.9.1