fn open_writer()

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
        }
    }