Log to stderr, allow --log=-
[petitboot] / lib / log / log.c
index e006fd0b1495c34867648ae58ff047113de751a6..ecbd7142d2e5c14ce1f5847d2bb93a6e467790df 100644 (file)
@@ -4,20 +4,35 @@
 #include "log.h"
 
 static FILE *logf;
+static int always_flush;
 
 void pb_log(const char *fmt, ...)
 {
        va_list ap;
        FILE *stream;
 
-       stream = logf ? logf : stdout;
+       stream = logf ? logf : stderr;
 
        va_start(ap, fmt);
        vfprintf(stream, fmt, ap);
        va_end(ap);
+
+       if (always_flush)
+               fflush(stream);
 }
 
 void pb_log_set_stream(FILE *stream)
 {
+       fflush(logf ? logf : stderr);
        logf = stream;
 }
+
+FILE * pb_log_get_stream(void)
+{
+       return logf ? logf : stderr;
+}
+
+void pb_log_always_flush(int state)
+{
+       always_flush = state;
+}