pub mod file;
pub use file::{FileAppender, Period};
use std::io::Write;
pub use time::Duration;
pub struct ChainAppenders {
writers: Vec<Box<dyn Write + Send>>,
}
impl ChainAppenders {
pub fn new(writers: Vec<Box<dyn Write + Send>>) -> Self {
Self { writers }
}
}
impl Write for ChainAppenders {
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
for writer in &mut self.writers {
writer.write_all(buf)?;
}
Ok(buf.len())
}
fn flush(&mut self) -> std::io::Result<()> {
for writer in &mut self.writers {
writer.flush()?;
}
Ok(())
}
}