diff --git a/zaptest/observer/observer.go b/zaptest/observer/observer.go index f77f1308b..4f7ce0ec6 100644 --- a/zaptest/observer/observer.go +++ b/zaptest/observer/observer.go @@ -91,6 +91,13 @@ func (o *ObservedLogs) FilterMessage(msg string) *ObservedLogs { }) } +// FilterLoggerName filters entries to those logged through logger with the specified logger name. +func (o *ObservedLogs) FilterLoggerName(name string) *ObservedLogs { + return o.Filter(func(e LoggedEntry) bool { + return e.LoggerName == name + }) +} + // FilterMessageSnippet filters entries to those that have a message containing the specified snippet. func (o *ObservedLogs) FilterMessageSnippet(snippet string) *ObservedLogs { return o.Filter(func(e LoggedEntry) bool { diff --git a/zaptest/observer/observer_test.go b/zaptest/observer/observer_test.go index 0cf631c03..cbe167025 100644 --- a/zaptest/observer/observer_test.go +++ b/zaptest/observer/observer_test.go @@ -171,6 +171,10 @@ func TestFilters(t *testing.T) { Entry: zapcore.Entry{Level: zap.ErrorLevel, Message: "warp core breach"}, Context: []zapcore.Field{zap.Int("b", 42)}, }, + { + Entry: zapcore.Entry{Level: zap.ErrorLevel, Message: "msg", LoggerName: "my.logger"}, + Context: []zapcore.Field{zap.Int("b", 42)}, + }, } logger, sink := New(zap.InfoLevel) @@ -251,6 +255,11 @@ func TestFilters(t *testing.T) { filtered: sink.FilterLevelExact(zap.WarnLevel), want: logs[9:10], }, + { + msg: "filter logger name", + filtered: sink.FilterLoggerName("my.logger"), + want: logs[11:12], + }, } for _, tt := range tests {