summaryrefslogtreecommitdiff
path: root/src/helper
diff options
context:
space:
mode:
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/log.c7
-rw-r--r--src/helper/log.h17
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
*/