#logging #bp3d #后端 #可配置 #灵活 #stderr

bp3d-logger

一个灵活的日志实现,旨在与BP3D软件一起使用

7个版本 (2个稳定版)

2.0.0-rc.3.0.02024年7月20日
2.0.0-rc.2.1.02024年7月18日
2.0.0-rc.2.0.12024年6月22日
2.0.0-rc.1.0.02024年3月27日
1.0.0 2022年3月4日

#99 in 调试

Download history 101/week @ 2024-06-15 90/week @ 2024-06-22 1/week @ 2024-06-29 5/week @ 2024-07-06 93/week @ 2024-07-13 100/week @ 2024-07-20 14/week @ 2024-07-27 1/week @ 2024-08-03

每月151次下载
bp3d-tracing 中使用

BSD-3-Clause

60KB
705

logo

调试器实现

此存储库包含bp3d-debug的主要实现以及所有必需的支持工具。这是BP3D软件中使用的官方bp3d-debug实现。

BP3D日志记录器

一个灵活的日志系统,旨在与BP3D软件一起使用。

主要功能

  • 异步以避免阻塞任何应用程序线程。
  • 多线程兼容。
  • 基于本地时间的日志记录(可配置)。
  • 支持文件日志记录。
  • 支持stdout/stderr日志记录。
  • 支持内存中的日志记录器。
  • 可以轻松切换日志后端。
  • 默认日志后端不应以任何方式使软件恐慌/中止/崩溃。

stdout/stderr

  • 错误消息写入stderr而不是stdout(可配置)。
  • 如果写入失败,则忽略消息;不会产生恐慌。

文件日志记录

  • 如果写入失败,则忽略消息。

内存中

  • 日志限制在固定数量的消息(可配置)。

BP3D跟踪

此crate包含bp3d-debug的实际实现。支持通过bp3d-logger进行传统日志记录,并支持通过TCP进行远程分析。

状态

此crate目前处于非常实验性的状态,可能不适用于所有系统。目前,仅在macOS 12.3.1上进行了全面测试。它可能适用于其他Unix系统。

此外,此版本目前在Windows系统上存在故障。

用法

在代码中

fn main() {
    let _guard = bp3d_tracing::initialize("my-application");
    //Application code using `tracing` or `log` utilities.
}

注意: 该库使用线程进行日志记录和性能分析。因此,在先删除 _guard 保护变量之前,不要调用 std::process::exit()。否则,将导致日志记录后端日志截断和性能分析后端数据丢失。

运行

为了配置 bp3d-tracing 的行为,使用了一些环境变量

名称 类型 可能的值 行为 默认值
性能分析器 布尔值 1, 0, true, false, on, off 启用远程性能分析。 off
日志 枚举 trace, debug, info, warning, error 日志记录后端的最大日志级别。 info
LOG_DISABLE 布尔值 1, 0, true, false, on, off 禁用日志记录后端。 off
LOG_STDOUT 布尔值 1, 0, true, false, on, off 始终将日志消息打印到 stdout。 off
LOG_COLOR 布尔值 1, 0, true, false, on, off 启用彩色输出。 isatty

在配置环境变量不是预期或过于复杂的情况下,该库支持 bp3d-env

bp3d-env 支持将文件作为环境变量的后备加载。该库将以下默认路径追加到 bp3d-env bp3d-fs::App::new("my-application").get_documents()?.join("environment"),对应以下路径

操作系统 路径
macOS ~/Library/Application Support/my-application/Documents/environment
Linux ~/.local/share/my-application/Documents/environment
Windows %APPDATA%/my-application/Documents/environment
iOS Files App/my-application/environment

依赖

~1.4–8.5MB
~62K SLoC