Zeek.Diagnostics 10.0.40
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:Enabled、Logging:File:Path 和 Logs/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.
.NET 10.0
- Zeek.Core (>= 10.0.40)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
| 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 |