7个版本 (2个稳定版)
2.0.0-rc.3.0.0 | 2024年7月20日 |
---|---|
2.0.0-rc.2.1.0 | 2024年7月18日 |
2.0.0-rc.2.0.1 | 2024年6月22日 |
2.0.0-rc.1.0.0 | 2024年3月27日 |
1.0.0 | 2022年3月4日 |
#99 in 调试
每月151次下载
在 bp3d-tracing 中使用
60KB
705 行
调试器实现
此存储库包含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