Skip to content

Commit 155d563

Browse files
committed
fix: barry quick fix, 2025-09-06 14:00:45
1 parent 171de64 commit 155d563

File tree

7 files changed

+60
-13
lines changed

7 files changed

+60
-13
lines changed

log/impl.log.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,11 @@ func (l *loggerImpl) WithFields(m Map) Logger {
9393

9494
func (l *loggerImpl) getCtx(ctxL ...context.Context) context.Context {
9595
ctx := context.Background()
96-
if len(ctxL) > 0 {
97-
ctx = ctxL[0]
96+
for i := range ctxL {
97+
if ctxL[i] != nil {
98+
ctx = ctxL[i]
99+
break
100+
}
98101
}
99102
return ctx
100103
}

v2/result/error.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,24 @@ func (e Error) Map(fn func(error) error) Error {
3636
return Error{err: err}
3737
}
3838

39+
func (e Error) LogCtx(ctx context.Context, events ...func(e *zerolog.Event)) Error {
40+
if e.IsErr() {
41+
err := e.err
42+
log.Error(ctx).
43+
Func(func(e *zerolog.Event) {
44+
for _, fn := range events {
45+
fn(e)
46+
}
47+
}).
48+
Str(zerolog.ErrorFieldName, err.Error()).
49+
CallerSkipFrame(1).
50+
Str("error_id", errors.GetErrorId(err)).
51+
Msgf("%s\n%s", err.Error(), prototext.Format(errors.ParseErrToPb(err)))
52+
}
53+
54+
return e
55+
}
56+
3957
func (e Error) Log(contexts ...context.Context) Error {
4058
if e.IsErr() {
4159
log.Error(contexts...).

v2/result/error_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package result
22

33
import (
4+
"github.com/rs/zerolog"
45
"testing"
56

67
"github.com/pubgo/funk/errors"
78
)
89

910
func TestErrorLog(t *testing.T) {
10-
ErrOf(errors.New("test")).Log()
11+
ErrOf(errors.New("test")).
12+
Log().
13+
LogCtx(nil, func(e *zerolog.Event) {
14+
e.Str("abc", "test")
15+
})
1116
}

v2/result/proxy_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
func TestProxy(t *testing.T) {
1010
var gErr error
1111
var err = ErrProxyOf(&gErr)
12-
Errorf("test proxy error").CatchErr(&err)
12+
Errorf("test proxy error").Log().CatchErr(&err)
1313
assert.NotNil(t, gErr)
1414
assert.NotNil(t, err.GetErr())
1515
assert.Equal(t, gErr, err.GetErr())

v2/result/result.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import (
55
"encoding/json"
66
"fmt"
77

8-
"github.com/pubgo/funk"
9-
"github.com/pubgo/funk/errors"
10-
"github.com/pubgo/funk/log"
118
"github.com/rs/zerolog"
129
"github.com/samber/lo"
1310
"google.golang.org/protobuf/encoding/prototext"
11+
12+
"github.com/pubgo/funk"
13+
"github.com/pubgo/funk/errors"
14+
"github.com/pubgo/funk/log"
1415
)
1516

1617
var _ Catchable = new(Result[any])
@@ -106,6 +107,24 @@ func (r Result[T]) Inspect(fn func(T)) Result[T] {
106107
return r
107108
}
108109

110+
func (r Result[T]) LogCtx(ctx context.Context, events ...func(e *zerolog.Event)) Result[T] {
111+
if r.IsErr() {
112+
err := r.err
113+
log.Error(ctx).
114+
Func(func(e *zerolog.Event) {
115+
for _, fn := range events {
116+
fn(e)
117+
}
118+
}).
119+
Str(zerolog.ErrorFieldName, err.Error()).
120+
CallerSkipFrame(1).
121+
Str("error_id", errors.GetErrorId(err)).
122+
Msgf("%s\n%s", err.Error(), prototext.Format(errors.ParseErrToPb(err)))
123+
}
124+
125+
return r
126+
}
127+
109128
func (r Result[T]) Log(contexts ...context.Context) Result[T] {
110129
if r.IsErr() {
111130
err := r.err

v2/result/result_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ func fn1() (r result.Result[string]) {
6767

6868
func fn2() (r result.Result[string]) {
6969
fn3().
70-
Map(func(err error) error {
71-
return errors.Wrap(err, "test error")
70+
InspectErr(func(err error) {
71+
log.Err(err).Msg("test error")
7272
}).
7373
CatchErr(&r)
7474
if r.IsErr() {
@@ -79,8 +79,9 @@ func fn2() (r result.Result[string]) {
7979
}
8080

8181
func fn3() result.Error {
82-
return result.ErrOf(fmt.Errorf("error test, this is error")).
83-
Inspect(func(err error) {
82+
return result.
83+
ErrOf(fmt.Errorf("error test, this is error")).
84+
InspectErr(func(err error) {
8485
log.Err(err).Msg("ddd")
8586
}).
8687
Log()

v2/result/util.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ import (
88
"runtime/debug"
99
"strings"
1010

11+
"github.com/samber/lo"
12+
1113
"github.com/pubgo/funk/errors"
1214
"github.com/pubgo/funk/generic"
1315
"github.com/pubgo/funk/log"
1416
"github.com/pubgo/funk/stack"
1517
"github.com/pubgo/funk/v2/result/resultchecker"
16-
"github.com/samber/lo"
1718
)
1819

1920
var errFnIsNil = errors.New("[fn] is nil")
@@ -110,7 +111,7 @@ func catchErr(r Error, setter ErrSetter, rawSetter *error, contexts ...context.C
110111
}
111112

112113
if rawSetter != nil {
113-
*rawSetter = err
114+
setError(ErrProxyOf(rawSetter), err)
114115
}
115116
}
116117

0 commit comments

Comments
 (0)