Compare commits

...

5 Commits

Author SHA1 Message Date
7577a2dd47 v0.0.274 limit exerr log meta values (shortlog) to 240 chars
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 50s
2023-09-27 16:18:21 +02:00
08681756b6 v0.0.273 add stack to PanicWrappedErr
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 1m9s
2023-09-27 14:15:59 +02:00
64772d0474 v0.0.272 WMO: fix FindOneAndReplace not using FindOneAndReplace
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 50s
2023-09-26 14:41:15 +02:00
127764556e Merge branch 'master' of ssh://gogs.mikescher.com:8022/BlackForestBytes/goext 2023-09-26 14:41:06 +02:00
170f43d806 WMO: fix FindOneAndReplace not using FindOneAndReplace 2023-09-26 14:40:56 +02:00
5 changed files with 30 additions and 15 deletions

View File

@@ -164,7 +164,7 @@ func (ee *ExErr) FormatLog(lvl LogPrintLevel) string {
} }
func (ee *ExErr) ShortLog(evt *zerolog.Event) { func (ee *ExErr) ShortLog(evt *zerolog.Event) {
ee.Meta.Apply(evt).Msg(ee.FormatLog(LogPrintShort)) ee.Meta.Apply(evt, langext.Ptr(240)).Msg(ee.FormatLog(LogPrintShort))
} }
// RecursiveMessage returns the message to show // RecursiveMessage returns the message to show

View File

@@ -217,23 +217,35 @@ func (v MetaValue) ShortString(lim int) string {
return "(err)" return "(err)"
} }
func (v MetaValue) Apply(key string, evt *zerolog.Event) *zerolog.Event { func (v MetaValue) Apply(key string, evt *zerolog.Event, limitLen *int) *zerolog.Event {
switch v.DataType { switch v.DataType {
case MDTString: case MDTString:
return evt.Str(key, v.Value.(string)) if limitLen == nil {
return evt.Str(key, v.Value.(string))
} else {
evt.Str(key, langext.StrLimit(v.Value.(string), *limitLen, "..."))
}
case MDTID: case MDTID:
return evt.Str(key, v.Value.(IDWrap).Value) return evt.Str(key, v.Value.(IDWrap).Value)
case MDTAny: case MDTAny:
if v.Value.(AnyWrap).IsError { if v.Value.(AnyWrap).IsError {
return evt.Str(key, "(err)") return evt.Str(key, "(err)")
} else { } else {
return evt.Str(key, v.Value.(AnyWrap).Json) if limitLen == nil {
return evt.Str(key, v.Value.(AnyWrap).Json)
} else {
evt.Str(key, langext.StrLimit(v.Value.(AnyWrap).Json, *limitLen, "..."))
}
} }
case MDTStringPtr: case MDTStringPtr:
if langext.IsNil(v.Value) { if langext.IsNil(v.Value) {
return evt.Str(key, "<<null>>") return evt.Str(key, "<<null>>")
} }
return evt.Str(key, langext.CoalesceString(v.Value.(*string), "<<null>>")) if limitLen == nil {
return evt.Str(key, langext.CoalesceString(v.Value.(*string), "<<null>>"))
} else {
evt.Str(key, langext.StrLimit(langext.CoalesceString(v.Value.(*string), "<<null>>"), *limitLen, "..."))
}
case MDTInt: case MDTInt:
return evt.Int(key, v.Value.(int)) return evt.Int(key, v.Value.(int))
case MDTInt8: case MDTInt8:
@@ -702,9 +714,9 @@ func (mm MetaMap) Any() bool {
return len(mm) > 0 return len(mm) > 0
} }
func (mm MetaMap) Apply(evt *zerolog.Event) *zerolog.Event { func (mm MetaMap) Apply(evt *zerolog.Event, limitLen *int) *zerolog.Event {
for key, val := range mm { for key, val := range mm {
evt = val.Apply(key, evt) evt = val.Apply(key, evt, limitLen)
} }
return evt return evt
} }

View File

@@ -1,5 +1,5 @@
package goext package goext
const GoextVersion = "0.0.271" const GoextVersion = "0.0.274"
const GoextVersionTimestamp = "2023-09-26T14:32:45+0200" const GoextVersionTimestamp = "2023-09-27T16:18:21+0200"

View File

@@ -1,7 +1,10 @@
package langext package langext
import "runtime/debug"
type PanicWrappedErr struct { type PanicWrappedErr struct {
panic any panic any
Stack string
} }
func (p PanicWrappedErr) Error() string { func (p PanicWrappedErr) Error() string {
@@ -15,7 +18,7 @@ func (p PanicWrappedErr) ReoveredObj() any {
func RunPanicSafe(fn func()) (err error) { func RunPanicSafe(fn func()) (err error) {
defer func() { defer func() {
if rec := recover(); rec != nil { if rec := recover(); rec != nil {
err = PanicWrappedErr{panic: rec} err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
} }
}() }()
@@ -27,7 +30,7 @@ func RunPanicSafe(fn func()) (err error) {
func RunPanicSafeR1(fn func() error) (err error) { func RunPanicSafeR1(fn func() error) (err error) {
defer func() { defer func() {
if rec := recover(); rec != nil { if rec := recover(); rec != nil {
err = PanicWrappedErr{panic: rec} err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
} }
}() }()
@@ -38,7 +41,7 @@ func RunPanicSafeR2[T1 any](fn func() (T1, error)) (r1 T1, err error) {
defer func() { defer func() {
if rec := recover(); rec != nil { if rec := recover(); rec != nil {
r1 = *new(T1) r1 = *new(T1)
err = PanicWrappedErr{panic: rec} err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
} }
}() }()
@@ -50,7 +53,7 @@ func RunPanicSafeR3[T1 any, T2 any](fn func() (T1, T2, error)) (r1 T1, r2 T2, er
if rec := recover(); rec != nil { if rec := recover(); rec != nil {
r1 = *new(T1) r1 = *new(T1)
r2 = *new(T2) r2 = *new(T2)
err = PanicWrappedErr{panic: rec} err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
} }
}() }()
@@ -63,7 +66,7 @@ func RunPanicSafeR4[T1 any, T2 any, T3 any](fn func() (T1, T2, T3, error)) (r1 T
r1 = *new(T1) r1 = *new(T1)
r2 = *new(T2) r2 = *new(T2)
r3 = *new(T3) r3 = *new(T3)
err = PanicWrappedErr{panic: rec} err = PanicWrappedErr{panic: rec, Stack: string(debug.Stack())}
} }
}() }()

View File

@@ -73,7 +73,7 @@ func (c *Coll[TData]) ReplaceOne(ctx context.Context, filterQuery bson.M, value
} }
func (c *Coll[TData]) FindOneAndReplace(ctx context.Context, filterQuery bson.M, value TData) (TData, error) { func (c *Coll[TData]) FindOneAndReplace(ctx context.Context, filterQuery bson.M, value TData) (TData, error) {
mongoRes := c.coll.FindOneAndUpdate(ctx, filterQuery, bson.M{"$set": value}, options.FindOneAndUpdate().SetReturnDocument(options.After)) mongoRes := c.coll.FindOneAndReplace(ctx, filterQuery, value, options.FindOneAndReplace().SetReturnDocument(options.After))
if err := mongoRes.Err(); err != nil { if err := mongoRes.Err(); err != nil {
return *new(TData), exerr.Wrap(err, "mongo-query[find-one-and-update] failed"). return *new(TData), exerr.Wrap(err, "mongo-query[find-one-and-update] failed").
Str("collection", c.Name()). Str("collection", c.Name()).