diff options
Diffstat (limited to 'src/helper')
-rw-r--r-- | src/helper/log.c | 7 | ||||
-rw-r--r-- | src/helper/log.h | 17 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/helper/log.c b/src/helper/log.c index 4cdcfc87..fe475130 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -43,12 +43,13 @@ void log_setCallback(logCallback c, void *p) privData = p; } -static char *log_strings[4] = +static char *log_strings[5] = { + "User: ", "Error: ", "Warning:", "Info: ", - "Debug: ", + "Debug: " }; void log_printf(enum log_levels level, const char *file, int line, const char *function, const char *format, ...) @@ -68,7 +69,7 @@ void log_printf(enum log_levels level, const char *file, int line, const char *f if (f != NULL) file = f + 1; - fprintf(log_output, "%s %d %ld %s:%d %s(): %s\n", log_strings[level], count, time(NULL), file, line, function, buffer); + fprintf(log_output, "%s %d %ld %s:%d %s(): %s\n", log_strings[level+1], count, time(NULL), file, line, function, buffer); fflush(log_output); va_end(args); diff --git a/src/helper/log.h b/src/helper/log.h index 09bc3a17..ab32760a 100644 --- a/src/helper/log.h +++ b/src/helper/log.h @@ -26,6 +26,9 @@ #include <stdarg.h> /* logging priorities + * LOG_USER - user messages. Could be anything from information + * to progress messags. These messages do not represent + * incorrect or unexpected behaviour, just normal execution. * LOG_ERROR - fatal errors, that are likely to cause program abort * LOG_WARNING - non-fatal errors, that may be resolved later * LOG_INFO - state information, etc. @@ -33,6 +36,7 @@ */ enum log_levels { + LOG_USER = -1, LOG_ERROR = 0, LOG_WARNING = 1, LOG_INFO = 2, @@ -53,13 +57,16 @@ extern void log_setCallback(logCallback callback, void *priv); extern int debug_level; +/* Avoid fn call and building parameter list if we're not outputting the information. + * Matters on feeble CPUs for DEBUG/INFO statements that are involved frequently */ + #define DEBUG(expr ...) \ - do { \ + do { if (debug_level >= LOG_DEBUG) \ log_printf (LOG_DEBUG, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) #define INFO(expr ...) \ - do { \ + do { if (debug_level >= LOG_INFO) \ log_printf (LOG_INFO, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) @@ -73,6 +80,12 @@ extern int debug_level; log_printf (LOG_ERROR, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) +#define USER(expr ...) \ + do { \ + log_printf (LOG_USER, __FILE__, __LINE__, __FUNCTION__, expr); \ + } while(0) + + /* general failures * error codes < 100 */ |