#output-format #logger #timestamp #color #readable #log-messages #prints

simple_logger

一个以可读输出格式打印所有消息的日志记录器

29 个稳定版本 (5 个主要版本)

5.0.0 2024年4月30日
4.3.3 2023年12月29日
4.3.0 2023年11月23日
4.2.0 2023年6月12日
0.3.1 2015年3月30日

#39 in 调试

Download history 164517/week @ 2024-05-01 170892/week @ 2024-05-08 162796/week @ 2024-05-15 173457/week @ 2024-05-22 195542/week @ 2024-05-29 184316/week @ 2024-06-05 195695/week @ 2024-06-12 158882/week @ 2024-06-19 202343/week @ 2024-06-26 168006/week @ 2024-07-03 208579/week @ 2024-07-10 200891/week @ 2024-07-17 216908/week @ 2024-07-24 192999/week @ 2024-07-31 246206/week @ 2024-08-07 246890/week @ 2024-08-14

944,052 每月下载量
668 工具包中使用 (598 个直接使用)

MIT 协议

33KB
420

simple_logger

一个以可读输出格式打印所有消息的日志记录器。

输出格式基于Supervisord使用的格式,时间戳采用RFC 3339格式。

时间戳的格式和时区可以自定义,可以根据日志级别启用简单的颜色,可以包含线程元数据,输出可以在STDOUT和STDERR之间切换。

公告

项目状态

我在2015年编写了该库的初始版本,从那时起就没有专业编写Rust。我认为这是我能达到的“完成”项目的极限,并且不打算再添加任何新功能。

它仍然在维护中,我会尝试合并修复、改进和功能的拉取请求;尽管我通常拒绝那些超出库目标(成为一个简单的日志记录器)的大型或复杂功能的拉取请求。如果你需要更多,请参考 log 模块中的可用日志实现,或者可以考虑fork simple_logger 并在此基础上构建。

重大变更

  • 版本2.0.0将默认时间戳显示从本地时区更改为UTC。有关更多信息,请参阅问题#52

使用方法

use simple_logger::SimpleLogger;

fn main() {
    SimpleLogger::new().init().unwrap();

    log::warn!("This is an example message.");
}

此输出

2022-01-19T17:27:07.013874956Z WARN [logging_example] This is an example message.

您可以使用以下命令运行上述示例

cargo run --example init

可选功能

colorstimestamps功能默认启用。您可以通过在您的Cargo.toml中禁用所有功能来删除这些功能和它们各自的依赖项。

[dependencies.simple_logger]
default-features = false

要包含timestamps功能,但不包含colors功能

[dependencies.simple_logger]
default-features = false
features = ["timestamps"]

要包含colors功能,但不包含timestamps功能

[dependencies.simple_logger]
default-features = false
features = ["colors"]

要包含线程元数据,请使用threadsnightly功能

[dependencies.simple_logger]
features = ["threads", "nightly"]

要将日志输出直接定向到stderr,请使用stderr功能

[dependencies.simple_logger]
features = ["stderr"]

可以组合多个功能。

[dependencies.simple_logger]
features = ["colors", "threads", "timestamps", "nightly", "stderr"]

包装另一个日志记录器

您可能希望包装此日志记录器,在将事件传递给SimpleLogger实例之前进行自己的处理。您可以直接调用这些函数,而不是调用init(),该函数会调用log::set_max_levellog::set_boxed_logger,这样您就有机会包装或调整日志记录器。请参阅wrap.rs以获取更详细的示例。

控制台设置

SimpleLogger.init()函数会尝试在各种情况下尽可能配置颜色支持

  • 在Windows上,它将启用颜色输出。请参阅set_up_windows_color_terminal()
  • 当使用colorsstderr功能时,它将指示colored库在STDERR是终端时显示颜色(而不是检查STDOUT是否是终端)。请参阅use_stderr_for_colors()

许可证

simple_loggerMIT许可证许可。

作者

Sam Clements编写。

依赖项

~0–11MB
~72K SLoC