error_reporter

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2026 License: MIT Imports: 9 Imported by: 0

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

Boot initializes the error reporter provider. No additional startup logic required.

Boot 初始化错误上报 provider。 无需额外启动逻辑。

func (*Provider) IsDefer

func (p *Provider) IsDefer() bool

IsDefer indicates error reporter should not defer loading. Must be available for early error capture.

IsDefer 表示错误上报器不应延迟加载。 必须尽早可用以捕获错误。

func (*Provider) Name

func (p *Provider) Name() string

Name returns provider name for identification.

Name 返回 provider 名称,用于标识。

func (*Provider) Provides

func (p *Provider) Provides() []string

Provides returns the capability keys this provider exposes. Exposes ErrorReporterKey for error reporting service.

Provides 返回 provider 暴露的能力键。 暴露 ErrorReporterKey 用于错误上报服务。

func (*Provider) Register

func (p *Provider) Register(c runtimecontract.Container) error

Register binds the error reporter factory to the container. Core logic: Create Sentry adapter if DSN configured, otherwise create Log reporter.

Register 将错误上报器工厂绑定到容器。 核心逻辑:若配置了 DSN 则创建 Sentry 适配器,否则创建日志上报器。

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。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL