diff --git a/src/rust/lib_ccxr/src/util/log.rs b/src/rust/lib_ccxr/src/util/log.rs index 9765d6a45..155541e49 100644 --- a/src/rust/lib_ccxr/src/util/log.rs +++ b/src/rust/lib_ccxr/src/util/log.rs @@ -281,8 +281,16 @@ impl<'a> CCExtractorLogger { fn print(&self, args: &Arguments<'a>) { match &self.target { - OutputTarget::Stdout => print!("{args}"), - OutputTarget::Stderr => eprint!("{args}"), + OutputTarget::Stdout => { + print!("{args}"); + // Flush stdout to ensure output appears immediately, especially when + // mixing with C code that also writes to stdout + let _ = std::io::Write::flush(&mut std::io::stdout()); + } + OutputTarget::Stderr => { + eprint!("{args}"); + let _ = std::io::Write::flush(&mut std::io::stderr()); + } OutputTarget::Quiet => {} } }