pub mod file;
pub mod rolling;
pub use file::FileAppender;
pub use rolling::{RollingFileAppender, RollingStrategy};
use crate::{config::LogLevel, error::Result};
use std::fmt;
pub trait LogAppender: Send + Sync + fmt::Debug {
fn write(&self, level: LogLevel, message: &str) -> Result<()>;
fn flush(&self) -> Result<()>;
}
pub trait LogWriter: Send + Sync + fmt::Debug + Clone {
fn write(&self, data: &[u8]) -> std::io::Result<usize>;
fn flush(&self) -> std::io::Result<()>;
}