-#define DPRINTF(fmt, ...) do { \
- if (debug) \
- fprintf(stderr, "DEBUG %s(%d): " fmt, __func__, __LINE__, ## __VA_ARGS__); \
+#define DEBUG(level, fmt, ...) do { \
+ if (debug >= level) \
+ fprintf(stderr, "procd: %s(%d): " fmt, __func__, __LINE__, ## __VA_ARGS__); \
+ } while (0)
+
+#define LOG(fmt, ...) do { \
+ syslog(LOG_INFO, fmt, ## __VA_ARGS__); \
+ fprintf(stderr, "procd: "fmt, ## __VA_ARGS__); \
+ } while (0)
+
+#define ERROR(fmt, ...) do { \
+ syslog(LOG_ERR, fmt, ## __VA_ARGS__); \
+ fprintf(stderr, "procd: "fmt, ## __VA_ARGS__); \