diff --git a/log/zap/filter_core.go b/log/zap/filter_core.go
index e1049447d7dd7775806625a69026f2f7c6ae884e..43e5e6bdf6998358efcac389920511f5915fd322 100644
--- a/log/zap/filter_core.go
+++ b/log/zap/filter_core.go
@@ -7,6 +7,17 @@ import (
 
 type FilterFunc func(entry zapcore.Entry, fields []zapcore.Field) bool
 
+func FilterField(field zapcore.Field) FilterFunc {
+	return func(entry zapcore.Entry, fields []zapcore.Field) bool {
+		for _, f := range fields {
+			if f.Equals(field) {
+				return true
+			}
+		}
+		return false
+	}
+}
+
 type filterCore struct {
 	zapcore.Core
 
@@ -14,7 +25,7 @@ type filterCore struct {
 	fields  []zap.Field
 }
 
-func NewFilterCore(core zapcore.Core, filters ...FilterFunc) zapcore.Core {
+func RegisterFilters(core zapcore.Core, filters ...FilterFunc) zapcore.Core {
 	return &filterCore{
 		Core:    core,
 		filters: filters,
diff --git a/log/zap/filter_core_test.go b/log/zap/filter_core_test.go
index f4e12b87921723a208b22954e3b009614552957f..211979752a21ceb071ce748fb0ed4e6d8eb02328 100644
--- a/log/zap/filter_core_test.go
+++ b/log/zap/filter_core_test.go
@@ -11,25 +11,15 @@ import (
 
 func TestFilterCore_Write(t *testing.T) {
 	core, logs := observer.New(zapcore.InfoLevel)
-	core = NewFilterCore(core, func(entry zapcore.Entry, fields []zapcore.Field) bool {
-		enc := zapcore.NewMapObjectEncoder()
-		for _, field := range fields {
-			field.AddTo(enc)
-		}
-		check, _ := enc.Fields["check"].(bool)
-		return check
-	})
+	core = RegisterFilters(core, FilterField(zap.Bool("check", true)))
 
-	{
-		err := core.With([]zapcore.Field{zap.Bool("check", true)}).
-			Write(zapcore.Entry{Message: "check true"}, nil)
-		require.NoError(t, err)
-	}
+	err := core.With([]zapcore.Field{zap.Bool("check", true)}).Write(zapcore.Entry{Message: "msg"}, nil)
+	require.NoError(t, err)
 
-	err := core.Write(zapcore.Entry{Message: "check true"}, []zapcore.Field{zap.Bool("check", true)})
+	err = core.Write(zapcore.Entry{Message: "msg"}, []zapcore.Field{zap.Bool("check", true)})
 	require.NoError(t, err)
 
-	err = core.Write(zapcore.Entry{Message: "check false"}, nil)
+	err = core.Write(zapcore.Entry{Message: "msg"}, nil)
 	require.NoError(t, err)
 
 	require.Equal(t, 2, logs.Len())