@@ -10,7 +10,6 @@ import (
10
10
"github.com/cockroachdb/errors"
11
11
"github.com/projecteru2/core/types"
12
12
13
- "github.com/getsentry/sentry-go"
14
13
"github.com/rs/zerolog"
15
14
"google.golang.org/grpc/peer"
16
15
)
@@ -30,6 +29,9 @@ func SetupLog(l string) error {
30
29
TimeFormat : time .RFC822 ,
31
30
}).With ().Timestamp ().Logger ()
32
31
rslog .Level (level )
32
+ zerolog .ErrorStackMarshaler = func (err error ) interface {} {
33
+ return errors .GetSafeDetails (err ).SafeDetails
34
+ }
33
35
globalLogger = rslog
34
36
35
37
return nil
@@ -38,7 +40,7 @@ func SetupLog(l string) error {
38
40
// Fatalf forwards to sentry
39
41
func Fatalf (ctx context.Context , err error , format string , args ... interface {}) {
40
42
args = argsValidate (args )
41
- sentry . CaptureMessage ( fmt . Sprintf ( genSentryTracingInfo ( ctx ) + format , args ... ) )
43
+ reportToSentry ( ctx , err , format , args )
42
44
globalLogger .Fatal ().Err (err ).Msgf (format , args ... )
43
45
}
44
46
@@ -81,7 +83,7 @@ func Errorf(ctx context.Context, err error, format string, args ...interface{})
81
83
if err == nil {
82
84
return
83
85
}
84
- sentry . CaptureMessage ( fmt . Sprintf ( genSentryTracingInfo ( ctx ) + format , args ... ) )
86
+ reportToSentry ( ctx , err , format , args )
85
87
errorEvent (err ).Msgf (format , args ... )
86
88
}
87
89
@@ -121,7 +123,7 @@ func (f Fields) Errorf(ctx context.Context, err error, format string, args ...in
121
123
if err == nil {
122
124
return
123
125
}
124
- sentry . CaptureMessage ( fmt . Sprintf ( genSentryTracingInfo ( ctx ) + format , args ... ) )
126
+ reportToSentry ( ctx , err , format , args )
125
127
errorEvent (err ).Fields (f .kv ).Msgf (format , args ... )
126
128
}
127
129
@@ -161,7 +163,7 @@ func errorEvent(err error) *zerolog.Event {
161
163
if err != nil {
162
164
err = errors .WithStack (err )
163
165
}
164
- return globalLogger .Error ().Err (err )
166
+ return globalLogger .Error ().Stack (). Err (err )
165
167
}
166
168
167
169
func argsValidate (args []interface {}) []interface {} {
@@ -170,3 +172,10 @@ func argsValidate(args []interface{}) []interface{} {
170
172
}
171
173
return []interface {}{"" }
172
174
}
175
+
176
+ func reportToSentry (ctx context.Context , err error , format string , args ... interface {}) { //nolint
177
+ err = errors .Wrap (err , fmt .Sprintf (genSentryTracingInfo (ctx )+ format , args ... ))
178
+ if eventID := errors .ReportError (err ); eventID != "" {
179
+ Infof (ctx , "Report to Sentry ID: %s" , eventID )
180
+ }
181
+ }
0 commit comments