#ifndef __DEBUG_H
#define __DEBUG_H
-#include <unistd.h>
-
extern const char red_color[];
extern const char green_color[];
extern const char normal_color[];
-#define pr_err(fmt, arg...) \
- fprintf(stderr, "%s[%d] %s:%d Error %s" fmt, red_color, getpid(), \
- __FILE__, __LINE__, normal_color, ##arg)
+extern int trace_level;
+
+enum {
+ TRACE_ERR,
+ TRACE_WARN,
+ TRACE_INFO,
+ TRACE_DEBUG,
+ TRACE_MAX,
+};
+
+void __attribute__ ((__format__ (__printf__, 5, 6)))
+print_trace(const char *file, int line, int color, int l,
+ const char *fmt, ...);
+
+#define pr_err(arg...) print_trace(__FILE__, __LINE__, 1, TRACE_ERR, arg)
+#define pr_warn(arg...) print_trace(__FILE__, __LINE__, 2, TRACE_WARN, arg)
+#define pr_info(arg...) print_trace(__FILE__, __LINE__, 2, TRACE_INFO, arg)
+#define pr_debug(arg...) print_trace(__FILE__, __LINE__, 2, TRACE_DEBUG, arg)
-#define pr_info(fmt, arg...) \
- printf("%s[%d] %s:%d %s" fmt, green_color, getpid(), \
- __FILE__, __LINE__, normal_color, ##arg)
+int open_log_file(const char *logfile);
#endif