Skip to main content

baichun_framework_logger/appender/
mod.rs

1pub mod file;
2pub mod rolling;
3
4pub use file::FileAppender;
5pub use rolling::{RollingFileAppender, RollingStrategy};
6
7use crate::{config::LogLevel, error::Result};
8use std::fmt;
9
10/// 日志追加器特征
11pub trait LogAppender: Send + Sync + fmt::Debug {
12    /// 写入日志
13    fn write(&self, level: LogLevel, message: &str) -> Result<()>;
14
15    /// 刷新缓冲区
16    fn flush(&self) -> Result<()>;
17}
18
19/// 日志写入器特征
20pub trait LogWriter: Send + Sync + fmt::Debug + Clone {
21    /// 写入数据
22    fn write(&self, data: &[u8]) -> std::io::Result<usize>;
23
24    /// 刷新缓冲区
25    fn flush(&self) -> std::io::Result<()>;
26}