X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Flog%2Flog.c;h=ecbd7142d2e5c14ce1f5847d2bb93a6e467790df;hp=e006fd0b1495c34867648ae58ff047113de751a6;hb=09cc1ef3d7e2c1dab6648aceb24dd33e7897f998;hpb=dae4540e417e2bf72dd83b2713a670bde0056ba9;ds=sidebyside diff --git a/lib/log/log.c b/lib/log/log.c index e006fd0..ecbd714 100644 --- a/lib/log/log.c +++ b/lib/log/log.c @@ -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; +}