Zeek.Diagnostics 10.0.41

Zeek.Diagnostics

Zeek.Diagnostics 是面向企业级 Avalonia 桌面应用的本机诊断快照和诊断包模块。

它用于报障、支持和本机排查;它不是 APM、分布式 tracing、日志平台、远程监控平台或 Avalonia UI 模块。

适用场景

  • 用户报障时导出诊断包。
  • 支持人员查看应用版本、runtime、OS、模块列表和日志摘要。
  • 业务模块显式贡献脱敏诊断 section。
  • 应用层组合 Dialogs / Feedback / UI 完成“一键导出”体验。

安装 / 引用

发布包消费时引用:

<PackageReference Include="Zeek.Diagnostics" />

当前 sample 已切换为发布态 PackageReference 消费路径,包版本由根目录 Directory.Packages.props 统一管理。

快速开始

根模块显式依赖 DiagnosticsModule

public static IReadOnlyList<ModuleDependency> Dependencies =>
[
    ModuleDependency.Of<DiagnosticsModule>()
];

Diagnostics 不依赖 LoggingModule。默认只按 Logging:File:EnabledLogging:File:PathLogs/app-.log 约定报告日志目录,不附加原始日志;只有单次 DiagnosticPackageOptions.IncludeLogFiles = true 才显式复制日志。原始日志不经过结构化字段脱敏,启用前必须确认日志内容本身适合分享。使用自定义 Serilog sink 或路径时,应用应显式注册自己的 IDiagnosticLogSource

业务模块按需显式注册 contributor:

context.AddDiagnosticContributor<SalesDiagnosticContributor>();

应用通过 IDiagnosticsService 创建快照,通过 IDiagnosticPackageBuilder 写出诊断包。

contributor 每次快照从一个 async DI scope 解析;目录和 zip 都先写 sibling staging,完整成功后再提交,失败或取消保留旧产物。

结构化字段脱敏只检查末级 key,并在忽略大小写和常见分隔符后与 DiagnosticsOptions.SensitiveKeywords 完整匹配;Credential.AccessToken 会命中,monkey 不会因为包含 key 被误脱敏。

AOT / Trim

  • AOT 支持等级:Supported。
  • Trim 策略:显式注册 contributor;source generator 只能作为增强,不作为运行时必要条件。
  • 执行策略:AddDiagnosticContributor<TContributor>() 注册时固化泛型 DI delegate,运行时不通过 Type 动态创建 contributor。
  • 反射策略:不扫描程序集,不遍历任意对象图。

Sample

  • ../../samples/Zeek.DiagnosticsSample/
  • ../../samples/Zeek.DiagnosticsAvaloniaSample/

完整文档

  • ../../docs/modules/Zeek.Diagnostics.md

当前限制

  • 不自动上传诊断包,不自动采集用户文档、数据库内容、token、cookie、私钥或业务数据原文。
  • 不负责日志写入、日志滚动、日志等级调整或 shutdown flush。
  • 不提供 Avalonia 窗口、弹窗、菜单或 UI 线程调度。

No packages depend on Zeek.Diagnostics.

Version Downloads Last updated
10.0.42 4 07/29/2026
10.0.41 14 07/22/2026
10.0.40 9 07/22/2026
10.0.39 19 07/19/2026
10.0.38 14 07/17/2026
10.0.37 1 07/16/2026
10.0.36 5 06/29/2026
10.0.35 1 06/29/2026
10.0.31 5 06/27/2026
10.0.30 2 06/27/2026
10.0.29 2 06/26/2026
10.0.28 2 06/26/2026
10.0.27 2 06/26/2026
10.0.26 4 06/25/2026
10.0.25 3 06/24/2026