1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
use flexi_logger::writers::LogWriter;
use std::{
io::{Error, ErrorKind},
sync::{Arc, Mutex},
};
fn main() {}
#[allow(dead_code)]
struct MyWriter<F> {
file: Arc<Mutex<F>>,
}
impl<F: std::io::Write + Send + Sync> LogWriter for MyWriter<F> {
fn write(
&self,
now: &mut flexi_logger::DeferredNow,
record: &flexi_logger::Record,
) -> std::io::Result<()> {
let mut file = self
.file
.lock()
.map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?;
flexi_logger::default_format(&mut *file, now, record)
}
fn flush(&self) -> std::io::Result<()> {
let mut file = self
.file
.lock()
.map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?;
file.flush()
}
}
|