Galago - desktop presence framework

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 /* _LIBGALAGO_LOG_H_ */