9个版本

0.2.6 2024年4月24日
0.2.5 2024年3月29日
0.2.4 2024年2月8日
0.2.3 2024年1月8日
0.1.1 2024年1月6日

#189 in 调试

34 每月下载量
用于 vanity

MIT 许可证

50KB
548

Logfather

一个简单、轻量级、易于使用的日志系统。它允许详细的日志消息,可配置的输出级别,并支持文件和终端输出。

特性

  • 易于设置和使用
  • 支持将日志记录到终端和日志文件
  • 可自定义的日志消息格式
  • 可配置的日志级别(信息、调试、警告、错误、严重和诊断)
  • 可配置的级别显示,包括颜色、高亮和样式
  • 可选的结果(使用宏 r_)用于管理错误
  • 线程安全

入门指南

要开始使用Logfather,将以下内容添加到您的 Cargo.toml

[dependencies]
logfather = "0.2.6"
  • 最低支持的Rust版本: 1.61.0
  • 查看 crates.io
  • 所有相关信息请参阅 文档

使用方法

  • 跟踪: trace!()r_trace!()
  • 调试: debug!()r_debug!()
  • 信息: info!()r_info!()
  • 警告: warn!()warning!()r_warn!()r_warning!()
  • 错误: error!()r_error!()
  • 关键: critical!()crit!()r_critical!()r_crit!()
  • 诊断: diagnostic!()diag!()r_diagnostic!()r_diag!()

快速设置输出到终端


use logfather::*;

let mut logger = Logger::new(); //Terminal output is enabled by default
error!("This is an error message");

仅设置文件输出,并写入特定错误级别的信息


use logfather::*;

let mut logger = Logger::new();
logger.terminal(false); // Disable terminal output 
logger.file(true); // Enable file output
logger.path("log.txt"); // Set the path for file logging
logger.level(Level::Error); // Set the minimum level

info!("This is an info message"); // Will not be written to file
debug!("This is a debug message"); // Will not be written to file
warning!("This is a warning message"); // Will not be written to file

error!("This is an error message"); // Will be written to file
critical!("This is a critical message"); // Will be written to file

同时设置终端和文件输出,捕获除警告之外的所有级别

use logfather::*;

// Supports the builder pattern
let mut logger = Logger::new() // Terminal output is enabled by default
    .file(true) // Enable file output
    .path("log.txt") // Set the path for file logging
    .ignore(Level::Warning); // Set the specific level to ignore

debug!("This is a debug message");
warning!("This is a warning message"); // Will be ignored
critical!("This is a critical message");

使用带前缀宏的r_优雅地处理错误值

use logfather::*;

let mut logger = Logger::new();

match r_info!("This will return a Result<(), LogfatherError>") {
    Ok(_) => println!("Successfully logged output"),
    Err(e) => println!("Error logging output: {e}"),
}

DebugDiagnostic级别仅适用于调试构建,不会在发布版本中编译

use logfather::*;

debug!("This is a debug message");
diag!("This is a diagnostic message"); 
diagnostic!("This will not output for release builds");

许可协议

本项目采用MIT许可协议授权 - 有关详细信息,请参阅LICENSE文件。

贡献

._. 你为什么要这样做?

  • 如果您希望提出功能请求,请在标题中包含[FEATURE REQUEST],然后请打开一个问题
  • 如果您希望贡献,问题和功能请求是很好的方式。如果您想分叉并提交更改的PR,请详细说明正在更改的内容。这是我自己的小项目,所以我会有一些看法,但我并不反对改进或改进建议。

依赖关系

~1MB
~18K SLoC