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,