Documentation
¶
Overview ¶
Package error_reporter provides error reporting service for gorp framework. Supports multiple backends: Sentry (production), Log (development/fallback). Core logic: Report errors asynchronously with stack trace and context.
错误上报包,提供 gorp 框架的错误上报能力。 支持多种后端:Sentry(生产环境)、日志(开发/兜底)。 核心逻辑:异步上报错误,携带堆栈和上下文信息。
Package error_reporter provides error reporting provider for gorp framework. Registers error reporting service with Sentry or Log backend based on configuration. Supports synchronous and asynchronous error reporting with stack trace.
错误上报包提供错误上报 provider,用于 gorp 框架。 根据配置注册 Sentry 或 Log 后端的错误上报服务。 支持带堆栈的同步和异步错误上报。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CaptureError ¶
func CaptureError(ctx context.Context, err error, reporter resiliencecontract.ErrorReporter)
CaptureError captures error with stack trace and reports asynchronously. Core logic: Capture stack trace, build error report, call reporter.
CaptureError 捕获错误及堆栈并异步上报。 核心逻辑:捕获堆栈、构建错误报告、调用上报器。
Types ¶
type LogReporter ¶
type LogReporter struct {
// contains filtered or unexported fields
}
LogReporter is the fallback error reporter that logs errors. Suitable for development or when DSN is not configured. Core logic: Format error with context, log with Error level.
LogReporter 是基于日志的错误上报器,作为兜底实现。 适用于开发环境或未配置 DSN 的场景。 核心逻辑:格式化错误及上下文、以 Error 级别记录日志。
func NewLogReporter ¶
func NewLogReporter(logger observabilitycontract.Logger) *LogReporter
NewLogReporter creates a new log-based error reporter.
NewLogReporter 创建基于日志的错误上报器。
func (*LogReporter) Flush ¶
func (r *LogReporter) Flush()
Flush flushes pending reports (no-op for log reporter).
Flush 刷新待上报的错误(日志上报器无操作)。
func (*LogReporter) ReportAsync ¶
func (r *LogReporter) ReportAsync(ctx context.Context, report *resiliencecontract.ErrorReport)
ReportAsync reports error asynchronously by spawning goroutine. Core logic: Call ReportSync in background goroutine.
ReportAsync 异步上报错误(启动 goroutine)。 核心逻辑:在后台 goroutine 中调用 ReportSync。
func (*LogReporter) ReportSync ¶
func (r *LogReporter) ReportSync(ctx context.Context, report *resiliencecontract.ErrorReport) error
ReportSync reports error synchronously by logging. Core logic: Build fields from error report, log with Error level.
ReportSync 同步上报错误(通过日志记录)。 核心逻辑:从错误报告构建字段、以 Error 级别记录。
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider provides error reporting service for gorp framework. Core logic: Bind reporter factory, choose Sentry or Log based on config.
Provider 提供错误上报服务,用于 gorp 框架。 核心逻辑:绑定上报器工厂、根据配置选择 Sentry 或日志。
func NewProvider ¶
func NewProvider(config resiliencecontract.ErrorReporterConfig) *Provider
NewProvider creates a new error reporter provider with configuration.
NewProvider 创建新的错误上报 provider,携带配置。
func (*Provider) Boot ¶
func (p *Provider) Boot(runtimecontract.Container) error
Boot initializes the error reporter provider. No additional startup logic required.
Boot 初始化错误上报 provider。 无需额外启动逻辑。
func (*Provider) IsDefer ¶
IsDefer indicates error reporter should not defer loading. Must be available for early error capture.
IsDefer 表示错误上报器不应延迟加载。 必须尽早可用以捕获错误。
type SentryAdapter ¶
type SentryAdapter struct {
// contains filtered or unexported fields
}
SentryAdapter is the Sentry-based error reporter. Requires DSN configuration for production use. Core logic: Send errors to Sentry service with full context.
SentryAdapter 是基于 Sentry 的错误上报器。 需要配置 DSN 才能在生产环境使用。 核心逻辑:将错误发送到 Sentry 服务,携带完整上下文。
func NewSentryAdapter ¶
func NewSentryAdapter(config resiliencecontract.ErrorReporterConfig) *SentryAdapter
NewSentryAdapter creates a new Sentry-based error reporter. Core logic: Validate config, enable only if DSN is configured.
NewSentryAdapter 创建基于 Sentry 的错误上报器。 核心逻辑:验证配置,仅在 DSN 已配置时启用。
func (*SentryAdapter) Flush ¶
func (a *SentryAdapter) Flush()
Flush flushes pending reports (no-op for current implementation).
Flush 刷新待上报的错误(当前实现无操作)。
func (*SentryAdapter) ReportAsync ¶
func (a *SentryAdapter) ReportAsync(ctx context.Context, report *resiliencecontract.ErrorReport)
ReportAsync reports error asynchronously to Sentry. Core logic: Call ReportSync in background goroutine.
ReportAsync 异步上报错误到 Sentry。 核心逻辑:在后台 goroutine 中调用 ReportSync。
func (*SentryAdapter) ReportSync ¶
func (a *SentryAdapter) ReportSync(ctx context.Context, report *resiliencecontract.ErrorReport) error
ReportSync reports error synchronously to Sentry. Core logic: Send error with stack trace and context to Sentry.
ReportSync 同步上报错误到 Sentry。 核心逻辑:将错误及堆栈和上下文发送到 Sentry。