galago-log.h
Go to the documentation of this file.00001
00021 #ifndef _LIBGALAGO_LOG_H_
00022 #define _LIBGALAGO_LOG_H_
00023
00024 #include <stdarg.h>
00025 #include <libgalago/galago-types.h>
00026
00030 typedef enum
00031 {
00032 GALAGO_LOG_ALL = 0,
00033 GALAGO_LOG_MISC,
00034 GALAGO_LOG_INFO,
00035 GALAGO_LOG_WARNING,
00036 GALAGO_LOG_ERROR,
00037 GALAGO_LOG_FATAL,
00038 GALAGO_LOG_ASSERT,
00039 GALAGO_LOG_NUM_LEVELS
00041 } GalagoLogLevel;
00042
00043 typedef void (*GalagoLogHandlerFunc)(GalagoLogLevel, const char *,
00044 va_list args, void *);
00045
00046 #ifndef __GNUC__
00047 # define __attribute__(x)
00048 #endif
00049
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053
00064 void galago_log_set_enabled(GalagoLogLevel level, galago_bool enabled);
00065
00073 void galago_log_set_handler(GalagoLogLevel level, GalagoLogHandlerFunc func,
00074 void *user_data);
00075
00083 void galago_log_unset_handler(GalagoLogLevel level);
00084
00092 void galago_log(GalagoLogLevel level, const char *format, ...)
00093 __attribute__((format(printf, 2, 3)));
00094
00106 void galago_log_args(GalagoLogLevel level, const char *format, va_list args);
00107
00117 void galago_log_misc(const char *format, ...)
00118 __attribute__((format(printf, 1, 2)));
00119
00129 void galago_log_info(const char *format, ...)
00130 __attribute__((format(printf, 1, 2)));
00131
00141 void galago_log_warning(const char *format, ...)
00142 __attribute__((format(printf, 1, 2)));
00143
00153 void galago_log_error(const char *format, ...)
00154 __attribute__((format(printf, 1, 2)));
00155
00165 void galago_log_fatal(const char *format, ...)
00166 __attribute__((format(printf, 1, 2)));
00167
00168 #ifdef __cplusplus
00169 }
00170 #endif
00171
00172 #endif