Skip to content

Commit

Permalink
perf: otel error logger depends on the interface
Browse files Browse the repository at this point in the history
  • Loading branch information
OldSmokeGun committed Nov 27, 2023
1 parent 9a2792a commit 8f4b7b6
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 10 deletions.
2 changes: 1 addition & 1 deletion internal/command/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import (
"go-scaffold/pkg/ioutils"
"go-scaffold/pkg/log"
iklog "go-scaffold/pkg/log/kratos"
tlog "go-scaffold/pkg/log/otel/trace"
tlog "go-scaffold/pkg/log/otel"
"go-scaffold/pkg/trace"
)

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package trace
package otel

import (
"context"
Expand All @@ -19,5 +19,5 @@ func NewLogger(sl *slog.Logger) *ErrorLogger {
}

func (l *ErrorLogger) Handle(err error) {
l.logger.Log(context.Background(), 8, err, slog.LevelError, "otel error")
l.logger.Log(context.Background(), 7, err, slog.LevelError, "otel error")
}
10 changes: 3 additions & 7 deletions pkg/trace/trace.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import (
sdktrace "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.7.0"
"go.opentelemetry.io/otel/trace"

tlog "go-scaffold/pkg/log/otel/trace"
)

var ErrUnsupportedOTPLProtocol = errors.New("unsupported otpl protocol")
Expand All @@ -31,7 +29,7 @@ type Trace struct {
serviceName string
env string
tracerProvider *sdktrace.TracerProvider
errorLogger *tlog.ErrorLogger
errorLogger otel.ErrorHandler
}

type Option func(t *Trace)
Expand All @@ -51,7 +49,7 @@ func WithEnv(env string) Option {
}

// WithErrorLogger optional error logger
func WithErrorLogger(logger *tlog.ErrorLogger) Option {
func WithErrorLogger(logger otel.ErrorHandler) Option {
return func(t *Trace) {
t.errorLogger = logger
}
Expand All @@ -65,9 +63,7 @@ func New(ctx context.Context, protocol OTPLProtocol, endpoint string, options ..
}

if t.errorLogger != nil {
otel.SetErrorHandler(otel.ErrorHandlerFunc(func(err error) {
t.errorLogger.Handle(err)
}))
otel.SetErrorHandler(t.errorLogger)
}

var (
Expand Down

0 comments on commit 8f4b7b6

Please sign in to comment.