| Crates.io | baichun-framework-logger |
| lib.rs | baichun-framework-logger |
| version | 0.1.0 |
| created_at | 2025-06-12 11:56:05.683506+00 |
| updated_at | 2025-06-12 11:56:05.683506+00 |
| description | Logger module for Baichun-Rust framework |
| homepage | |
| repository | https://github.com/baichun-framework/baichun-framework |
| max_upload_size | |
| id | 1709720 |
| size | 83,932 |
baichun-framework-logger 是一个功能强大的日志模块,基于 tracing 构建,提供了丰富的日志记录功能。
将以下内容添加到你的 Cargo.toml 文件中:
[dependencies]
baichun-framework-logger = "0.1"
use baichun_framework_logger::{
LoggerConfig, LogLevel, LogFormat, TextFormatConfig,
TimePeriod, TimeRollingConfig, RollingPolicy,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 创建日志配置
let config = LoggerConfig {
level: LogLevel::Info,
dir: "logs".into(),
filename: "app.log".into(),
rolling_policy: RollingPolicy::Time(TimeRollingConfig {
period: TimePeriod::Daily,
keep_days: 7,
}),
format: LogFormat::Text(TextFormatConfig {
time_format: "%Y-%m-%d %H:%M:%S".to_string(),
show_level: true,
show_target: true,
show_thread_id: true,
show_file: true,
show_line: true,
}),
async_write: true,
split_by_level: false,
console: None,
};
// 初始化日志系统
baichun_framework_logger::init(config)?;
// 使用 tracing 宏记录日志
tracing::info!("应用程序启动");
tracing::error!("发生错误:{}", "连接失败");
Ok(())
}
use baichun_framework_logger::{LoggerConfig, LogFormat, JsonFormatConfig};
let config = LoggerConfig {
format: LogFormat::Json(JsonFormatConfig {
time_format: "%Y-%m-%d %H:%M:%S".to_string(),
pretty: true,
include_caller: true,
include_thread: true,
}),
..Default::default()
};
let config = LoggerConfig {
split_by_level: true,
..Default::default()
};
use baichun_framework_logger::{
RollingPolicy, TimeRollingConfig, SizeRollingConfig,
TimePeriod,
};
let config = LoggerConfig {
rolling_policy: RollingPolicy::Compound {
time: TimeRollingConfig {
period: TimePeriod::Daily,
keep_days: 7,
},
size: SizeRollingConfig {
max_size: 100 * 1024 * 1024, // 100MB
max_files: 5,
},
},
..Default::default()
};
本项目采用 MIT 许可证。详见 LICENSE 文件。