3 个版本
新版本 0.1.2 | 2024年8月24日 |
---|---|
0.1.1 | 2024年8月23日 |
0.1.0 | 2024年8月23日 |
230 在 调试 中排名
每月 82 次下载
23KB
490 行
prettylog-rs
一个专注于控制台可读性的 Rust 日志库。prettylog-rs 利用 ANSI 颜色代码使您的日志看起来✨ 美观 ✨。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
prettylog-rs = "0.1.1"
日志记录
日志记录非常简单,只需调用 log(message, type)
函数。其中 type
参数是可选的,默认为 LogType::Runtime
。
use prettylog_rs::{log, LogType};
fn main() {
prettylog_rs::logger::init();
log("Hello there!", LogType::Information);
log("general kenobi", LogType::Network);
}
您还可以记录异常!
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
prettylog_rs::logger::init();
// Some code that might throw an error
let result = std::fs::read_to_string("non_existent_file.txt");
if let Err(e) = result {
log_exception(&e);
}
Ok(())
}
日志记录器设置
您可以通过修改 LoggerSettings
来更改设置
use prettylog_rs::logger::{LoggerSettings, LoggerStyle};
fn main() {
let mut settings = LoggerSettings::get();
settings.save_to_file = true;
settings.save_directory_path = String::from("./logs/");
settings.log_file_name_format = String::from("%Y-%m-%d-%H%M%S");
settings.logger_style = LoggerStyle::Prefix;
}
日志类型
有 16 种默认的日志类型: Debug、Information、Runtime、Network、Success、Warning、Error、Exception、Critical、Audit、Trace、Security、User Action、Performance、Config 和 Fatal。
自定义日志类型
您可以通过实现自己的枚举和相关函数来创建自定义日志类型
use prettylog_rs::types::{AnsiColor, AnsiPair, CustomLogType, LogType};
pub enum MyCustomLogType {
Cute,
Git,
FireWarning,
}
impl CustomLogType for MyCustomLogType {
fn name(&self) -> &'static str {
match self {
MyCustomLogType::Cute => "≽^•⩊•^≼",
MyCustomLogType::Git => "🤖 Git",
MyCustomLogType::FireWarning => "🔥 Fire Warning",
}
}
fn color_pair(&self) -> AnsiPair {
match self {
MyCustomLogType::Cute => AnsiPair::new(AnsiColor::CutePinkBackground, AnsiColor::CutePink),
MyCustomLogType::Git => AnsiPair::new(AnsiColor::AquaBackground, AnsiColor::Aqua),
MyCustomLogType::FireWarning => AnsiPair::new(AnsiColor::OrangeBackground, AnsiColor::Orange),
}
}
}
fn main() {
prettylog_rs::logger::init();
log("T-This is vewy cuwute message OwO", LogType::Custom(&MyCustomLogType::Cute));
log("Refusing to merge unrelated histories", LogType::Custom(&MyCustomLogType::Git));
log("SERVER ROOM ON FIRE, DON'T LET ASO RUN WHILE LOOPS EVER AGAIN", LogType::Custom(&MyCustomLogType::FireWarning));
}
许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
贡献
欢迎贡献!请随时提交 Pull Request。
鸣谢
https://github.com/LukynkaCZE https://github.com/LukynkaCZE/PrettyLog
依赖关系
~1.3–2MB
~36K SLoC