diff --git a/clients/mysql/db.go b/clients/mysql/db.go index 594090eb3c5960f327b00f6cc155008c8e103c13..e07f4c89e67616cf1f234f8ddf615a16aef32c07 100644 --- a/clients/mysql/db.go +++ b/clients/mysql/db.go @@ -85,5 +85,5 @@ func WriteDBError(ctx context.Context, logger logging.IDotpeLogger, err error, d "error": error.Error(err), "repository": db, "error-type": etype, - }, logrus.ErrorLevel, "MySQLError") + }, logging.ErrorLevel, "MySQLError") } diff --git a/logging/default.logger.go b/logging/default.logger.go index baedaf244719b35dd00140a99046f6333c281640..d10989ef858615c4617a3ae58a858ee90d401045 100644 --- a/logging/default.logger.go +++ b/logging/default.logger.go @@ -9,6 +9,6 @@ import ( type emptyLogger struct{} -func (el *emptyLogger) WriteLogs(context.Context, logrus.Fields, logrus.Level, string) {} +func (el *emptyLogger) WriteLogs(context.Context, logrus.Fields, Level, string) {} func (el *emptyLogger) Gin() gin.HandlerFunc { return func(c *gin.Context) {} } diff --git a/logging/interface.go b/logging/interface.go index 9b5ef59b0ebc29c89b70b1df6abe38fe5b4a09f5..58ca8b5d3afead8de813d8abefda4a7874ece948 100644 --- a/logging/interface.go +++ b/logging/interface.go @@ -8,7 +8,7 @@ import ( ) type ILogWriter interface { - WriteLogs(context.Context, logrus.Fields, logrus.Level, string) + WriteLogs(context.Context, logrus.Fields, Level, string) } // ILogger ... diff --git a/logging/level.go b/logging/level.go index 1f356e79b8a2d04eadcb8a50494d4fccc0fdad95..5ab53ea2f109350e9dff8cca709781759f37b3ee 100644 --- a/logging/level.go +++ b/logging/level.go @@ -1,8 +1,11 @@ package logging -import "go.uber.org/zap" +import ( + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) -type Level int8 +type Level zapcore.Level const ( PanicLevel Level = Level(zap.PanicLevel) @@ -13,3 +16,5 @@ const ( DebugLevel Level = Level(zap.DebugLevel) DPanicLevel Level = Level(zap.DPanicLevel) ) + +func (l Level) String() string { return zapcore.Level(l).String() } diff --git a/logging/logger.go b/logging/logger.go index b08edda090170b12d2d2acfbe5e1c231e8df1b82..7e2ccd1be0ec8cb8a496376197b0499a6f0bd4f6 100644 --- a/logging/logger.go +++ b/logging/logger.go @@ -29,7 +29,7 @@ type dlogger struct { accopts []accessLogOption loptions []logOption - metricCollectionLevel logrus.Level + metricCollectionLevel Level collector *prometheus.CounterVec } @@ -81,7 +81,7 @@ func (dlogger *dlogger) finalizeEssentials() error { } // WriteLogs writes log -func (dLogger *dlogger) WriteLogs(ctx context.Context, fields logrus.Fields, cb logrus.Level, MessageKey string) { +func (dLogger *dlogger) WriteLogs(ctx context.Context, fields logrus.Fields, cb Level, MessageKey string) { if ctx == nil { return } @@ -112,10 +112,10 @@ func (dLogger *dlogger) WriteLogs(ctx context.Context, fields logrus.Fields, cb fields[idx] = string(tmp) } } - dLogger.Write(fields, zapcore.Level(cb), MessageKey) + dLogger.Write(fields, cb, MessageKey) } -func (dLogger *dlogger) Write(fields logrus.Fields, cb zapcore.Level, MessageKey string) { +func (dLogger *dlogger) Write(fields logrus.Fields, cb Level, MessageKey string) { zlevel := zapcore.Level(cb) zfields := dLogger.enzap(fields) entry := dLogger.zap.Check(zlevel, MessageKey) @@ -142,12 +142,12 @@ func (dLogger *dlogger) Gin() gin.HandlerFunc { start := time.Now() var fields = logrus.Fields{} dLogger.safeRunAccessLogOptions(c, fields) - var level = new(logrus.Level) - *level = logrus.InfoLevel + var level Level + level = InfoLevel //deferred request log fields["time"] = start - defer dLogger.WriteLogs(c, fields, *level, "access-log") + defer dLogger.WriteLogs(c, fields, level, "access-log") fields["request-statusCode"] = 0 c.Next() @@ -164,11 +164,11 @@ func (dLogger *dlogger) Gin() gin.HandlerFunc { if len(c.Errors) > 0 { fields["error"] = c.Errors.ByType(gin.ErrorTypePrivate).String() - *level = logrus.ErrorLevel + level = ErrorLevel } else if code > 499 { - *level = logrus.ErrorLevel + level = ErrorLevel } else if code > 399 { - *level = logrus.WarnLevel + level = WarnLevel } } } diff --git a/logging/logger_test.go b/logging/logger_test.go index aaa7be55e49c988abb37217a87ffcd557ed4bf20..22d14959a2c435192683658532f5be5533e5eb79 100644 --- a/logging/logger_test.go +++ b/logging/logger_test.go @@ -5,7 +5,6 @@ import ( "testing" "github.com/sirupsen/logrus" - "go.uber.org/zap/zapcore" ) func Test_dlogger_Write(t *testing.T) { @@ -13,7 +12,7 @@ func Test_dlogger_Write(t *testing.T) { fmt.Println(logger) type args struct { fields logrus.Fields - cb zapcore.Level + cb Level MessageKey string } tests := []struct { @@ -24,14 +23,14 @@ func Test_dlogger_Write(t *testing.T) { name: "test", args: args{ fields: logrus.Fields{"test-field-1": "test-field-value-1"}, - cb: zapcore.InfoLevel, + cb: InfoLevel, MessageKey: "testing", }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - logger.Write(tt.args.fields, zapcore.Level(tt.args.cb), tt.args.MessageKey) + logger.Write(tt.args.fields, tt.args.cb, tt.args.MessageKey) }) } } diff --git a/logging/metrics.go b/logging/metrics.go index 78494d8e03321ca126967f54c4b1d1733b0c8cd0..d395746705aafaaf64d21677e97180f9db379df8 100644 --- a/logging/metrics.go +++ b/logging/metrics.go @@ -5,10 +5,9 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - "github.com/sirupsen/logrus" ) -func WithMetric(level logrus.Level) Option { +func WithMetric(level Level) Option { return func(dlogger *dlogger) { dlogger.collector = promauto.NewCounterVec(prometheus.CounterOpts{ Name: "counter", @@ -21,7 +20,7 @@ func WithMetric(level logrus.Level) Option { } } -func (dlogger *dlogger) addMetrics(level logrus.Level, msg, caller string) { +func (dlogger *dlogger) addMetrics(level Level, msg, caller string) { if dlogger.collector != nil && level < dlogger.metricCollectionLevel { parts := strings.Split(caller, "/") parts = parts[len(parts)-3:] diff --git a/middleware/gin/panic.go b/middleware/gin/panic.go index 0e4b85f9078b5c48dd167742d03f5b7df1054e5c..d90ae791a028dbb2322fac5109093387fc0c8d84 100644 --- a/middleware/gin/panic.go +++ b/middleware/gin/panic.go @@ -25,12 +25,12 @@ func Recovery(l logging.ILogWriter) gin.HandlerFunc { if strings.Contains(strings.ToLower(se.Error()), "broken pipe") || strings.Contains(strings.ToLower(se.Error()), "connection reset by peer") { c.Error(err.(error)) // nolint: errcheck c.Abort() - l.WriteLogs(c, logrus.Fields{"stacktrace": stack}, logrus.TraceLevel, "BrokenPipe") + l.WriteLogs(c, logrus.Fields{"stacktrace": stack}, logging.FatalLevel, "BrokenPipe") return } } } - l.WriteLogs(c, logrus.Fields{"stacktrace": stack}, logrus.FatalLevel, "Panic") + l.WriteLogs(c, logrus.Fields{"stacktrace": stack}, logging.FatalLevel, "Panic") c.JSON(http.StatusExpectationFailed, map[string]interface{}{ "message": "something went wrong", "status": false,