80 个版本

0.34.0 2024 年 6 月 5 日
0.32.3 2024 年 4 月 16 日
0.32.2 2024 年 1 月 30 日
0.32.1 2023 年 12 月 18 日
0.1.4 2016 年 7 月 8 日

#12调试 中排名

Download history 105313/week @ 2024-05-02 108182/week @ 2024-05-09 150507/week @ 2024-05-16 135799/week @ 2024-05-23 111008/week @ 2024-05-30 144250/week @ 2024-06-06 123425/week @ 2024-06-13 123523/week @ 2024-06-20 140377/week @ 2024-06-27 125710/week @ 2024-07-04 103692/week @ 2024-07-11 115521/week @ 2024-07-18 119429/week @ 2024-07-25 124634/week @ 2024-08-01 155610/week @ 2024-08-08 141836/week @ 2024-08-15

565,505 每月下载量
150 个代码包(60 个直接使用) 中使用

Apache-2.0

335KB
6K SLoC

Sentry

Sentry Rust SDK: sentry

此代码包为将事件和错误/恐慌记录到 Sentry 错误日志服务提供支持。它集成了 Rust 的标准恐慌系统以及一些流行的错误处理设置。

快速入门

使用此库最方便的方式是通过 sentry::init 函数,该函数使用默认的集成启动一个 Sentry 客户端,并将其绑定到当前的 Hub。有关如何在并行、并发和异步场景中使用 Sentry 的更多信息,请参阅 Hub 文档。

sentry::init 函数返回一个保护器,当它被丢弃时,将刷新尚未发送到 Sentry 服务的事件。此操作有两个秒的截止日期,因此应用程序的关闭可能会因此略有延迟。请保留保护器,否则发送事件将无法工作。

let _guard = sentry::init("https://[email protected]/42");
sentry::capture_message("Hello World!", sentry::Level::Info);
// when the guard goes out of scope here, the client will wait up to two
// seconds to send remaining events to the service.

有关如何使用 Sentry 的更复杂示例,请参阅 示例。更详细的说明也可以在 Sentry 本身 找到。

集成

使这个crate变得有用的因素是其各种集成。其中一些默认启用;请参见特性。不常见的集成或生态系统中已弃用的部分的集成需要启用特性标志。有关可用的集成及其使用方法,请参阅集成apply_defaults

最小API

这个crate功能齐全。如果目标是使用sentry对库进行仪器化,或者用自定义的IntegrationTransport扩展sentry,则应使用sentry-core crate。

特性

通过特性标志启用附加功能集和集成。某些特性需要额外的设置才能正常工作。

特性 默认 集成 已弃用 附加说明
回溯 🔌
上下文 🔌
panic 🔌
传输
anyhow 🔌
测试
debug-images 🔌
日志 🔌 需要额外设置;请参阅sentry-log的文档。
debug-logs 需要额外设置;请参阅sentry-log的文档。
slog 🔌 需要额外设置;请参阅sentry-slog的文档。
reqwest
native-tls reqwest必须启用。
rustls reqwest必须启用。必须通过default-features = false禁用native-tls
curl
surf
tower 🔌 需要额外设置;请参阅sentry-tower的文档。
ureq 默认使用rustls支持ureq传输
ureq-native-tls

默认特性

  • backtrace:启用回溯支持。
  • contexts:启用捕获设备、操作系统和Rust上下文。
  • panic:启用捕获panic的支持。
  • transport:启用默认传输,目前是使用native-tlsreqwest
  • debug-images:启用捕获加载的共享库的元数据。

调试/测试

  • anyhow:启用对anyhow crate的支持。
  • test:启用测试支持。

日志记录

  • log:启用对log crate的支持。
  • slog:启用对slog crate的支持。
  • debug-logs已弃用。使用log crate进行内部日志记录。

传输

  • reqwest默认。启用reqwest传输。
  • native-tls默认。使用native-tls crate。这仅影响reqwest传输。
  • rustls:启用reqwestrustls支持。请注意,native-tls是默认特性,并且必须将default-features = false设置为完全禁用构建native-tls依赖项。
  • curl:启用curl传输。
  • surf:启用 surf 传输。
  • ureq:使用 rustls 启用 ureq 传输。
  • ureq-native-tls:使用 native-tls 启用 ureq 传输。

集成

  • tower:启用对 tower crate 及其使用者的支持。

资源

许可证:Apache-2.0

依赖关系

~3–43MB
~723K SLoC