Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
7577a2dd47
|
|||
08681756b6
|
|||
64772d0474 | |||
127764556e | |||
170f43d806 |
@@ -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
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
|
@@ -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())}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@@ -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()).
|
||||||
|
Reference in New Issue
Block a user