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