2002-06-27 00:45:49 +02:00
|
|
|
/*
|
|
|
|
* log.h
|
|
|
|
* Logging facilities.
|
|
|
|
*
|
|
|
|
* Matej Pfajfar <mp292@cam.ac.uk>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __LOG_H
|
|
|
|
|
2003-08-12 05:08:41 +02:00
|
|
|
#ifdef HAVE_SYSLOG_H
|
2002-06-27 00:45:49 +02:00
|
|
|
#include <syslog.h>
|
2003-10-10 03:48:03 +02:00
|
|
|
#define LOG_WARN LOG_WARNING
|
2003-08-12 05:08:41 +02:00
|
|
|
#else
|
|
|
|
#define LOG_DEBUG 0
|
|
|
|
#define LOG_INFO 1
|
2003-10-10 03:48:03 +02:00
|
|
|
#define LOG_WARN 3
|
2003-08-12 05:08:41 +02:00
|
|
|
#define LOG_ERR 4
|
|
|
|
#endif
|
2002-06-27 00:45:49 +02:00
|
|
|
|
2003-06-18 00:14:44 +02:00
|
|
|
/* magic to make GCC check for proper format strings. */
|
|
|
|
#ifdef __GNUC__
|
|
|
|
#define CHECK_PRINTF(formatIdx, firstArg) \
|
|
|
|
__attribute__ ((format (printf, formatIdx, firstArg)))
|
|
|
|
#else
|
|
|
|
#define CHECK_PRINTF(formatIdx, firstArg)
|
|
|
|
#endif
|
|
|
|
|
2003-06-21 21:03:22 +02:00
|
|
|
void log_set_severity(int severity);
|
|
|
|
|
2003-09-16 19:58:36 +02:00
|
|
|
void add_stream_log(int loglevel, const char *name, FILE *stream);
|
2003-10-15 20:38:38 +02:00
|
|
|
int add_file_log(int severity, const char *filename);
|
2003-09-16 19:58:36 +02:00
|
|
|
void close_logs();
|
|
|
|
void reset_logs();
|
|
|
|
|
2003-06-24 07:18:12 +02:00
|
|
|
/* Outputs a message to stdout */
|
2003-10-07 18:30:05 +02:00
|
|
|
void _log(int severity, const char *format, ...) CHECK_PRINTF(2,3);
|
2002-06-27 00:45:49 +02:00
|
|
|
|
2003-05-09 04:41:27 +02:00
|
|
|
#ifdef __GNUC__
|
2003-06-18 00:14:44 +02:00
|
|
|
void _log_fn(int severity, const char *funcname, const char *format, ...)
|
|
|
|
CHECK_PRINTF(3,4);
|
2003-06-17 23:15:25 +02:00
|
|
|
#define log_fn(severity, args...) \
|
2003-06-17 23:36:44 +02:00
|
|
|
_log_fn(severity, __PRETTY_FUNCTION__, args)
|
2003-05-09 04:25:37 +02:00
|
|
|
#else
|
2003-10-07 18:30:05 +02:00
|
|
|
#define log_fn _log
|
2003-05-09 04:25:37 +02:00
|
|
|
#endif
|
2003-10-07 18:30:05 +02:00
|
|
|
#define log _log /* hack it so we don't conflict with log() as much */
|
2003-05-09 04:25:37 +02:00
|
|
|
|
2002-06-27 00:45:49 +02:00
|
|
|
# define __LOG_H
|
|
|
|
#endif
|