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;