type LoggerOption … type loggerOptions … type loggerOptionFunc … func (f loggerOptionFunc) applyLoggerOption(opts *loggerOptions) { … } // Level controls which messages are logged by a test Logger built by // NewLogger. func Level(enab zapcore.LevelEnabler) LoggerOption { … } // WrapOptions adds zap.Option's to a test Logger built by NewLogger. func WrapOptions(zapOpts ...zap.Option) LoggerOption { … } // NewLogger builds a new Logger that logs all messages to the given // testing.TB. // // logger := zaptest.NewLogger(t) // // Use this with a *testing.T or *testing.B to get logs which get printed only // if a test fails or if you ran go test -v. // // The returned logger defaults to logging debug level messages and above. // This may be changed by passing a zaptest.Level during construction. // // logger := zaptest.NewLogger(t, zaptest.Level(zap.WarnLevel)) // // You may also pass zap.Option's to customize test logger. // // logger := zaptest.NewLogger(t, zaptest.WrapOptions(zap.AddCaller())) func NewLogger(t TestingT, opts ...LoggerOption) *zap.Logger { … } type TestingWriter … // NewTestingWriter builds a new TestingWriter that writes to the given // testing.TB. // // Use this if you need more flexibility when creating *zap.Logger // than zaptest.NewLogger() provides. // // E.g., if you want to use custom core with zaptest.TestingWriter: // // encoder := newCustomEncoder() // writer := zaptest.NewTestingWriter(t) // level := zap.NewAtomicLevelAt(zapcore.DebugLevel) // // core := newCustomCore(encoder, writer, level) // // logger := zap.New(core, zap.AddCaller()) func NewTestingWriter(t TestingT) TestingWriter { … } // WithMarkFailed returns a copy of this TestingWriter with markFailed set to // the provided value. func (w TestingWriter) WithMarkFailed(v bool) TestingWriter { … } // Write writes bytes from p to the underlying testing.TB. func (w TestingWriter) Write(p []byte) (n int, err error) { … } // Sync commits the current contents (a no-op for TestingWriter). func (w TestingWriter) Sync() error { … }