-#define LOG log_printf
-#define log_start(name, daemon) \
- openlog(name, (LOG_PERROR | LOG_CONS), LOG_USER)
-#define log_printf(...) syslog(LOG_NOTICE, __VA_ARGS__)
+enum {
+ ULOG_KMSG = (1 << 0),
+ ULOG_SYSLOG = (1 << 1),
+ ULOG_STDIO = (1 << 2)
+};
+
+void ulog_open(int channels, int facility, const char *ident);
+void ulog_close(void);
+
+void ulog_threshold(int threshold);
+
+void ulog(int priority, const char *fmt, ...);
+
+#define ULOG_INFO(fmt, ...) ulog(LOG_INFO, fmt, ## __VA_ARGS__)
+#define ULOG_NOTE(fmt, ...) ulog(LOG_NOTICE, fmt, ## __VA_ARGS__)
+#define ULOG_WARN(fmt, ...) ulog(LOG_WARNING, fmt, ## __VA_ARGS__)
+#define ULOG_ERR(fmt, ...) ulog(LOG_ERR, fmt, ## __VA_ARGS__)