1 #include <stdio.h> 2 #include <stdarg.h> 3 #include <syslog.h> 4 5 #ifndef LOGGER_H 6 #define LOGGER_H 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 // do not collide with constants defined in syslog.h 13 enum LogLevel { ZLOG_FATAL, ZLOG_ERROR, ZLOG_WARN, ZLOG_INFO, ZLOG_DEBUG, ZLOG_TRACE, 14 ZNUM_LOGLEVELS }; 15 16 int log_fatal(const char *loggerName, const char *logMessage, ...) __attribute__((noreturn)); 17 18 int log_error(const char *loggerName, const char *logMessage, ...); 19 20 int log_warn(const char *loggerName, const char *logMessage, ...); 21 22 int log_info(const char *loggerName, const char *logMessage, ...); 23 24 int log_debug(const char *loggerName, const char *logMessage, ...); 25 26 int log_trace(const char *loggerName, const char *logMessage, ...); 27 28 int log_init(FILE *stream, enum LogLevel level, 29 int syslog_enabled, const char *syslog_app); 30 31 void check_and_log_file_error(FILE *file, const char*name); 32 33 size_t dstrftime(char *, size_t, const char *, double); 34 35 double now(); 36 37 #ifdef __cplusplus 38 } 39 #endif 40 41 #endif // _LOGGER_H 42 43