Source File
options.go
Belonging Package
go.uber.org/zap
// Copyright (c) 2016 Uber Technologies, Inc.//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to deal// in the Software without restriction, including without limitation the rights// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell// copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions://// The above copyright notice and this permission notice shall be included in// all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN// THE SOFTWARE.package zapimport ()// An Option configures a Logger.type Option interface {apply(*Logger)}// optionFunc wraps a func so it satisfies the Option interface.type optionFunc func(*Logger)func ( optionFunc) ( *Logger) {()}// WrapCore wraps or replaces the Logger's underlying zapcore.Core.func ( func(zapcore.Core) zapcore.Core) Option {return optionFunc(func( *Logger) {.core = (.core)})}// Hooks registers functions which will be called each time the Logger writes// out an Entry. Repeated use of Hooks is additive.//// Hooks are useful for simple side effects, like capturing metrics for the// number of emitted logs. More complex side effects, including anything that// requires access to the Entry's structured fields, should be implemented as// a zapcore.Core instead. See zapcore.RegisterHooks for details.func ( ...func(zapcore.Entry) error) Option {return optionFunc(func( *Logger) {.core = zapcore.RegisterHooks(.core, ...)})}// Fields adds fields to the Logger.func ( ...Field) Option {return optionFunc(func( *Logger) {.core = .core.With()})}// ErrorOutput sets the destination for errors generated by the Logger. Note// that this option only affects internal errors; for sample code that sends// error-level logs to a different location from info- and debug-level logs,// see the package-level AdvancedConfiguration example.//// The supplied WriteSyncer must be safe for concurrent use. The Open and// zapcore.Lock functions are the simplest ways to protect files with a mutex.func ( zapcore.WriteSyncer) Option {return optionFunc(func( *Logger) {.errorOutput =})}// Development puts the logger in development mode, which makes DPanic-level// logs panic instead of simply logging an error.func () Option {return optionFunc(func( *Logger) {.development = true})}// AddCaller configures the Logger to annotate each message with the filename,// line number, and function name of zap's caller. See also WithCaller.func () Option {return WithCaller(true)}// WithCaller configures the Logger to annotate each message with the filename,// line number, and function name of zap's caller, or not, depending on the// value of enabled. This is a generalized form of AddCaller.func ( bool) Option {return optionFunc(func( *Logger) {.addCaller =})}// AddCallerSkip increases the number of callers skipped by caller annotation// (as enabled by the AddCaller option). When building wrappers around the// Logger and SugaredLogger, supplying this Option prevents zap from always// reporting the wrapper code as the caller.func ( int) Option {return optionFunc(func( *Logger) {.callerSkip +=})}// AddStacktrace configures the Logger to record a stack trace for all messages at// or above a given level.func ( zapcore.LevelEnabler) Option {return optionFunc(func( *Logger) {.addStack =})}// IncreaseLevel increase the level of the logger. It has no effect if// the passed in level tries to decrease the level of the logger.func ( zapcore.LevelEnabler) Option {return optionFunc(func( *Logger) {, := zapcore.NewIncreaseLevelCore(.core, )if != nil {fmt.Fprintf(.errorOutput, "failed to IncreaseLevel: %v\n", )} else {.core =}})}// WithPanicHook sets a CheckWriteHook to run on Panic/DPanic logs.// Zap will call this hook after writing a log statement with a Panic/DPanic level.//// For example, the following builds a logger that will exit the current// goroutine after writing a Panic/DPanic log message, but it will not start a panic.//// zap.New(core, zap.WithPanicHook(zapcore.WriteThenGoexit))//// This is useful for testing Panic/DPanic log output.func ( zapcore.CheckWriteHook) Option {return optionFunc(func( *Logger) {.onPanic =})}// OnFatal sets the action to take on fatal logs.//// Deprecated: Use [WithFatalHook] instead.func ( zapcore.CheckWriteAction) Option {return WithFatalHook()}// WithFatalHook sets a CheckWriteHook to run on fatal logs.// Zap will call this hook after writing a log statement with a Fatal level.//// For example, the following builds a logger that will exit the current// goroutine after writing a fatal log message, but it will not exit the// program.//// zap.New(core, zap.WithFatalHook(zapcore.WriteThenGoexit))//// It is important that the provided CheckWriteHook stops the control flow at// the current statement to meet expectations of callers of the logger.// We recommend calling os.Exit or runtime.Goexit inside custom hooks at// minimum.func ( zapcore.CheckWriteHook) Option {return optionFunc(func( *Logger) {.onFatal =})}// WithClock specifies the clock used by the logger to determine the current// time for logged entries. Defaults to the system clock with time.Now.func ( zapcore.Clock) Option {return optionFunc(func( *Logger) {.clock =})}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)