diff --git a/go.mod b/go.mod index d63051c..23c97d0 100644 --- a/go.mod +++ b/go.mod @@ -3,15 +3,14 @@ module github.com/packaged/logger/v3 go 1.20 require ( - github.com/packaged/environment v1.0.0 - github.com/stretchr/testify v1.8.1 - go.uber.org/zap v1.24.0 + github.com/packaged/environment v1.1.0 + github.com/stretchr/testify v1.10.0 + go.uber.org/zap v1.27.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index d94e3fb..a0b88e4 100644 --- a/go.sum +++ b/go.sum @@ -1,28 +1,17 @@ -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/packaged/environment v1.0.0 h1:cJp5QiFW84uys0a5DGtnxu5DFhrB4lpfK3zw1GhZCG8= -github.com/packaged/environment v1.0.0/go.mod h1:P3je+kjXqJuu6vhQeDMqCqaB9biE6ITXswSA3Dts7Oc= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/packaged/environment v1.1.0 h1:TxABnUoqPzzg8c1WeVfux3cmUOyd0HggvRrvIlmfxIM= +github.com/packaged/environment v1.1.0/go.mod h1:P3je+kjXqJuu6vhQeDMqCqaB9biE6ITXswSA3Dts7Oc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/logger/timed.go b/logger/timed.go index 87c1e6c..bac456c 100644 --- a/logger/timed.go +++ b/logger/timed.go @@ -1,8 +1,9 @@ package logger import ( - "go.uber.org/zap" "time" + + "go.uber.org/zap" ) type TimedLogConfig struct { @@ -47,20 +48,28 @@ func NewTimedLog(cnf *TimedLogConfig, message string, fields ...zap.Field) *Time return &TimedLog{config: cnf, message: message, fields: fields, start: time.Now()} } -func (l *Logger) TimedLog(tl *TimedLog) { +func (l *Logger) TimedLog(tl *TimedLog, fields ...zap.Field) { if l == nil || tl == nil { return } tl.Complete() + nl := l.Clone() + nl.zapper = nl.zapper.WithOptions(zap.AddCallerSkip(1)) + + logFields := tl.fields + logFields = append(logFields, tl.fields...) + logFields = append(logFields, fields...) + logFields = append(logFields, zap.Duration("duration", tl.duration)) + if tl.duration >= tl.config.ErrorDuration && tl.config.ErrorDuration > 0 { - l.Error(tl.message, append(tl.fields, zap.Duration("duration", tl.duration))...) + nl.Error(tl.message, logFields...) } else if tl.duration >= tl.config.WarnDuration && tl.config.WarnDuration > 0 { - l.Warn(tl.message, append(tl.fields, zap.Duration("duration", tl.duration))...) + nl.Warn(tl.message, logFields...) } else if tl.duration >= tl.config.InfoDuration && tl.config.InfoDuration > 0 { - l.Info(tl.message, append(tl.fields, zap.Duration("duration", tl.duration))...) + nl.Info(tl.message, logFields...) } else if tl.duration >= tl.config.DebugDuration && tl.config.DebugDuration > 0 { - l.Debug(tl.message, append(tl.fields, zap.Duration("duration", tl.duration))...) + nl.Debug(tl.message, logFields...) } }