9 个版本

0.3.2 2024年3月10日
0.3.1 2024年3月10日
0.2.0 2024年3月2日
0.1.8 2024年3月1日
0.1.7 2022年7月26日

#8#json-log

每月 21 次下载

MIT 许可证

18KB
272

Rs-Logger

一个简单的 Rust 编程语言日志库。

安装

在 Cargo.toml 文件中的依赖项下添加 rs-logger = "0.3.2"。

[dependencies]
rs-logger = "0.3.2"

或者在终端中运行 cargo add rs-logger

代码示例

有五种不同的日志级别。

  • 跟踪
  • 信息
  • 警告
  • 错误
  • 关键

每个级别都有自己的优先级。跟踪允许打印一切,警告只允许打印警告()及以上优先级的消息,等等。最高的是关键().需要注意的是,如果日志到文件为真,则无论日志级别如何,所有消息都将存储在日志文件中。

Logger 的构造函数 new() 返回 LoggerBuilder 结构体的实例,其中可以调用 level() 和 filename() 来设置级别和文件名。如果没有调用 filename(),则将关闭日志到文件。

在 LoggerBuilder 实例上调用 build 方法以获取 Logger 的实例。

如果关闭了文件日志,build() 方法将不会返回错误。

正常解析示例。日期格式为 YYYY-MM-DD

2024-03-06 12:04:01 CRITICAL: msg
2024-03-06 12:04:01 ERROR: msg

JSON 解析示例

{
  "logs": [
    {
      "date": "2024-03-06",
      "time": "12:01:53",
      "message": "msg",
      "type": "CRITICAL"
    },
    {
      "date": "2024-03-06",
      "time": "12:01:53",
      "message": "msg",
      "type": "ERROR"
    }
  ]
}

所有时间戳和日期都基于系统时间以本地时区为基础。

use rs_logger::*;

fn main() {

  let mut logger = Logger::new()
                            .level(LoggingLevel::Info)
                            .filename(PathBuf::from("logs.json"))
                            .build()
                            .unwrap();
    
  logger.info("Informative message at date {%D} and time {%T}".to_string());
  logger.critical("CRITICAL ERROR".to_string());
    
}

级别

  • 跟踪 => 一切

  • 信息 => 一切除了调试

  • 警告 => 警告、错误和关键

  • 错误 => 错误和关键

  • 关键 => 只有关键

依赖项

~2–11MB
~75K SLoC