in src/flowgger/output/file_output.rs [127:171]
fn open_writer(&self) -> Option<Box<dyn Write + Send>> {
let file_writer: Option<Box<dyn Write + Send>>;
// Rotation option is enabled, open a rotating file writer
let mut rotating_file = RotatingFile::new(
&self.path,
self.rotation_size,
self.rotation_time,
self.rotation_maxfiles,
&self.time_format,
);
if rotating_file.is_enabled() {
file_writer = match rotating_file.open() {
Ok(_) => Some(Box::new(rotating_file)),
Err(e) => {
let _ = writeln!(
stderr(),
"Unable to open rotating file {}: {}",
&self.path,
e
);
None
}
}
}
// Open a standard file writer
else {
file_writer = match RotatingFile::open_file(&self.path) {
Ok(file) => Some(Box::new(file)),
Err(e) => {
let _ = writeln!(stderr(), "Unable to open file {}: {}", &self.path, e);
None
}
}
}
// Return bufferized output if option is enabled
if (file_writer.is_some()) && (self.buffer_size > 0) {
Some(Box::new(BufWriter::with_capacity(
self.buffer_size,
file_writer.unwrap(),
)))
} else {
file_writer
}
}