tools: share function for logging
diff --git a/tools/log.c b/tools/log.c
index 229f41c..c6887bd 100644
--- a/tools/log.c
+++ b/tools/log.c
@@ -70,6 +70,34 @@
(void)data;
}
+void log_printf(int prio, const char *fmt, ...)
+{
+ const char *prioname;
+ char *msg;
+ va_list args;
+
+ if (prio > log_priority)
+ return;
+
+ va_start(args, fmt);
+ if (vasprintf(&msg, fmt, args) < 0)
+ msg = NULL;
+ va_end(args);
+ if (msg == NULL)
+ return;
+
+ prioname = prio_to_str(prio);
+
+ if (log_use_syslog)
+ syslog(prio, "%s: %s", prioname, msg);
+ else
+ fprintf(stderr, "%s: %s: %s", binname, prioname, msg);
+ free(msg);
+
+ if (prio <= LOG_CRIT)
+ exit(EXIT_FAILURE);
+}
+
void log_setup_kmod_log(struct kmod_ctx *ctx, int priority)
{
log_priority = priority;