Documentation ¶
Index ¶
- func ErrorWriter() io.Writer
- func FileExists(path string) (bool, error)
- func MakeParentDirs(filename string) error
- func NewContextWithLogTags(ctx context.Context, logTagsToAdd CtxLogTags) context.Context
- func OpenLogFile(filename string) (name string, file *os.File, err error)
- func OutputWriter() io.Writer
- func OutputWriterFromFile(out *os.File) io.Writer
- func PickFirstError(errors ...error) error
- func SetLogFileConfig(lfc *LogFileConfig) error
- type ColorWriter
- type CtxLogTags
- type CtxStandardLoggerKey
- type ExternalHandler
- type ExternalLogger
- type LogFileConfig
- type Logger
- type Null
- func (l *Null) CCriticalf(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CDebugf(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CErrorf(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CFatalf(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CInfof(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CNoticef(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) CWarningf(ctx context.Context, fmt string, arg ...interface{})
- func (l *Null) Configure(style string, debug bool, filename string)
- func (l *Null) Critical(format string, args ...interface{})
- func (l *Null) Debug(format string, args ...interface{})
- func (l *Null) Error(fmt string, arg ...interface{})
- func (l *Null) Errorf(format string, args ...interface{})
- func (l *Null) Fatalf(fmt string, arg ...interface{})
- func (l *Null) Info(format string, args ...interface{})
- func (l *Null) Notice(format string, args ...interface{})
- func (l *Null) Profile(fmts string, arg ...interface{})
- func (l *Null) RotateLogFile() error
- func (l *Null) SetExternalHandler(handler ExternalHandler)
- func (l *Null) Shutdown()
- func (l *Null) Warning(format string, args ...interface{})
- type Standard
- func (log *Standard) CCriticalf(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CDebugf(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CErrorf(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CFatalf(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CInfof(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CNoticef(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) CWarningf(ctx context.Context, fmt string, arg ...interface{})
- func (log *Standard) Configure(style string, debug bool, filename string)
- func (log *Standard) Critical(fmt string, arg ...interface{})
- func (log *Standard) Debug(fmt string, arg ...interface{})
- func (log *Standard) Error(fmt string, arg ...interface{})
- func (log *Standard) Errorf(fmt string, arg ...interface{})
- func (log *Standard) Fatalf(fmt string, arg ...interface{})
- func (log *Standard) GetUnforwardedLogger() *UnforwardedLogger
- func (log *Standard) Info(fmt string, arg ...interface{})
- func (log *Standard) Notice(fmt string, arg ...interface{})
- func (log *Standard) Profile(fmts string, arg ...interface{})
- func (log *Standard) RotateLogFile() error
- func (log *Standard) SetExternalHandler(handler ExternalHandler)
- func (log *Standard) Warning(fmt string, arg ...interface{})
- type TestLogBackend
- type TestLogger
- func (log *TestLogger) CCriticalf(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CDebugf(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CErrorf(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CFatalf(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CInfof(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CNoticef(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) CWarningf(ctx context.Context, fmts string, arg ...interface{})
- func (log *TestLogger) Configure(style string, debug bool, filename string)
- func (log *TestLogger) Critical(fmts string, arg ...interface{})
- func (log *TestLogger) Debug(fmts string, arg ...interface{})
- func (log *TestLogger) Error(fmts string, arg ...interface{})
- func (log *TestLogger) Errorf(fmts string, arg ...interface{})
- func (log *TestLogger) Fatalf(fmts string, arg ...interface{})
- func (log *TestLogger) Info(fmts string, arg ...interface{})
- func (log *TestLogger) Notice(fmts string, arg ...interface{})
- func (log *TestLogger) Profile(fmts string, arg ...interface{})
- func (log *TestLogger) RotateLogFile() error
- func (log *TestLogger) SetExternalHandler(_ ExternalHandler)
- func (log *TestLogger) Warning(fmts string, arg ...interface{})
- type UnforwardedLogger
- func (log *UnforwardedLogger) Debug(s string, args ...interface{})
- func (log *UnforwardedLogger) Error(s string, args ...interface{})
- func (log *UnforwardedLogger) Errorf(s string, args ...interface{})
- func (log *UnforwardedLogger) Info(s string, args ...interface{})
- func (log *UnforwardedLogger) Profile(s string, args ...interface{})
- func (log *UnforwardedLogger) Warning(s string, args ...interface{})
- type WORD
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FileExists ¶
func MakeParentDirs ¶
func NewContextWithLogTags ¶
func NewContextWithLogTags( ctx context.Context, logTagsToAdd CtxLogTags) context.Context
NewContext returns a new Context that carries adds the given log tag mappings (context key -> display string).
func OutputWriterFromFile ¶
Return our writer so we can override Write()
func PickFirstError ¶
func SetLogFileConfig ¶
func SetLogFileConfig(lfc *LogFileConfig) error
SetLogFileConfig sets the log file config to be used globally.
Types ¶
type ColorWriter ¶
type ColorWriter struct {
// contains filtered or unexported fields
}
func (*ColorWriter) Fd ¶
func (cw *ColorWriter) Fd() uintptr
Fd returns the underlying file descriptor. This is mainly to support checking whether it's a terminal or not.
func (*ColorWriter) Write ¶
func (cw *ColorWriter) Write(p []byte) (n int, err error)
Rough emulation of Ansi terminal codes. Parse the string, pick out the codes, and convert to calls to SetConsoleTextAttribute.
This function must mix calls to SetConsoleTextAttribute with separate Write() calls, so to prevent pieces of colored strings from being interleaved by unsynchronized goroutines, we unfortunately must lock a mutex.
Notice this is only necessary for what is now called "legacy" terminal mode: https://technet.microsoft.com/en-us/library/mt427362.aspx?f=255&MSPPError=-2147217396
type CtxLogTags ¶
type CtxLogTags map[interface{}]string
func LogTagsFromContext ¶
func LogTagsFromContext(ctx context.Context) (CtxLogTags, bool)
LogTagsFromContext returns the log tags being passed along with the given context.
type CtxStandardLoggerKey ¶
type CtxStandardLoggerKey int
CtxStandardLoggerKey is a type defining context keys used by the Standard logger.
const ( // CtxLogTags defines a context key that can hold a slice of context // keys, the value of which should be logged by a Standard logger if // one of those keys is seen in a context during a log call. CtxLogTagsKey CtxStandardLoggerKey = iota )
type ExternalHandler ¶
type ExternalLogger ¶
type LogFileConfig ¶
type LogFileConfig struct { // Path is the path of the log file to use Path string // MaxSize is the size of log file (in bytes) before rotation, 0 for infinite. MaxSize int64 // MaxAge is the duration before log rotation, zero value for infinite. MaxAge time.Duration // MaxKeepFiles is maximum number of log files for this service, older // files are deleted. MaxKeepFiles int }
LogFileConfig is the config structure for new style log files with rotation.
type Logger ¶
type Logger interface { // Debug logs a message at debug level, with formatting args. Debug(format string, args ...interface{}) // CDebugf logs a message at debug level, with a context and // formatting args. CDebugf(ctx context.Context, format string, args ...interface{}) // Info logs a message at info level, with formatting args. Info(format string, args ...interface{}) // CInfo logs a message at info level, with a context and formatting args. CInfof(ctx context.Context, format string, args ...interface{}) // Notice logs a message at notice level, with formatting args. Notice(format string, args ...interface{}) // CNoticef logs a message at notice level, with a context and // formatting args. CNoticef(ctx context.Context, format string, args ...interface{}) // Warning logs a message at warning level, with formatting args. Warning(format string, args ...interface{}) // CWarning logs a message at warning level, with a context and // formatting args. CWarningf(ctx context.Context, format string, args ...interface{}) // Error logs a message at error level, with formatting args Error(format string, args ...interface{}) // Errorf logs a message at error level, with formatting args. Errorf(format string, args ...interface{}) // CErrorf logs a message at error level, with a context and // formatting args. CErrorf(ctx context.Context, format string, args ...interface{}) // Critical logs a message at critical level, with formatting args. Critical(format string, args ...interface{}) // CCriticalf logs a message at critical level, with a context and // formatting args. CCriticalf(ctx context.Context, format string, args ...interface{}) // Fatalf logs a message at fatal level, with formatting args. Fatalf(format string, args ...interface{}) // Fatalf logs a message at fatal level, with a context and formatting args. CFatalf(ctx context.Context, format string, args ...interface{}) // Profile logs a profile message, with formatting args. Profile(fmts string, arg ...interface{}) // Configure sets the style, debug level, and filename of the // logger. Output isn't redirected to the file until // RotateLogFile is called for the first time. Configure(style string, debug bool, filename string) // RotateLogFile rotates the log file, if the underlying logger is // writing to a file. RotateLogFile() error // SetExternalHandler sets a handler that will be called with every log message. SetExternalHandler(handler ExternalHandler) }
type Null ¶
type Null struct{}
func (*Null) CCriticalf ¶
func (*Null) RotateLogFile ¶
func (*Null) SetExternalHandler ¶
func (l *Null) SetExternalHandler(handler ExternalHandler)
type Standard ¶
type Standard struct {
// contains filtered or unexported fields
}
func NewWithCallDepth ¶
NewWithCallDepth creates a new Standard logger for module, and when printing file names and line numbers, it goes extraCallDepth up the stack from where logger was invoked.
func (*Standard) CCriticalf ¶
func (*Standard) Configure ¶
Configure sets the style of the log file, whether debugging (verbose) is enabled and a filename. If a filename is provided here it will be used for logging straight away (this is a new feature). SetLogFileConfig provides a way to set the log file with more control on rotation.
func (*Standard) GetUnforwardedLogger ¶
func (log *Standard) GetUnforwardedLogger() *UnforwardedLogger
func (*Standard) RotateLogFile ¶
RotateLogFile is the old style of logging to a file. It uses a default config for log rotation and uses the filename set from .Configure.
func (*Standard) SetExternalHandler ¶
func (log *Standard) SetExternalHandler(handler ExternalHandler)
type TestLogBackend ¶
type TestLogBackend interface { Error(args ...interface{}) Errorf(format string, args ...interface{}) Fatal(args ...interface{}) Fatalf(format string, args ...interface{}) Log(args ...interface{}) Logf(format string, args ...interface{}) }
TestLogBackend is an interface for logging to a test object (i.e., a *testing.T). We define this in order to avoid pulling in the "testing" package in exported code.
type TestLogger ¶
type TestLogger struct {
// contains filtered or unexported fields
}
TestLogger is a Logger that writes to a TestLogBackend. All messages except Fatal are printed using Logf, to avoid failing a test that is trying to test an error condition. No context tags are logged.
func NewTestLogger ¶
func NewTestLogger(log TestLogBackend) *TestLogger
func (*TestLogger) CCriticalf ¶
func (log *TestLogger) CCriticalf(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CDebugf ¶
func (log *TestLogger) CDebugf(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CErrorf ¶
func (log *TestLogger) CErrorf(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CFatalf ¶
func (log *TestLogger) CFatalf(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CInfof ¶
func (log *TestLogger) CInfof(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CNoticef ¶
func (log *TestLogger) CNoticef(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) CWarningf ¶
func (log *TestLogger) CWarningf(ctx context.Context, fmts string, arg ...interface{})
func (*TestLogger) Configure ¶
func (log *TestLogger) Configure(style string, debug bool, filename string)
func (*TestLogger) Critical ¶
func (log *TestLogger) Critical(fmts string, arg ...interface{})
func (*TestLogger) Debug ¶
func (log *TestLogger) Debug(fmts string, arg ...interface{})
func (*TestLogger) Error ¶
func (log *TestLogger) Error(fmts string, arg ...interface{})
func (*TestLogger) Errorf ¶
func (log *TestLogger) Errorf(fmts string, arg ...interface{})
func (*TestLogger) Fatalf ¶
func (log *TestLogger) Fatalf(fmts string, arg ...interface{})
func (*TestLogger) Info ¶
func (log *TestLogger) Info(fmts string, arg ...interface{})
func (*TestLogger) Notice ¶
func (log *TestLogger) Notice(fmts string, arg ...interface{})
func (*TestLogger) Profile ¶
func (log *TestLogger) Profile(fmts string, arg ...interface{})
func (*TestLogger) RotateLogFile ¶
func (log *TestLogger) RotateLogFile() error
func (*TestLogger) SetExternalHandler ¶
func (log *TestLogger) SetExternalHandler(_ ExternalHandler)
no-op stubs to fulfill the Logger interface
func (*TestLogger) Warning ¶
func (log *TestLogger) Warning(fmts string, arg ...interface{})
type UnforwardedLogger ¶
type UnforwardedLogger Standard
func (*UnforwardedLogger) Debug ¶
func (log *UnforwardedLogger) Debug(s string, args ...interface{})
func (*UnforwardedLogger) Error ¶
func (log *UnforwardedLogger) Error(s string, args ...interface{})
func (*UnforwardedLogger) Errorf ¶
func (log *UnforwardedLogger) Errorf(s string, args ...interface{})
func (*UnforwardedLogger) Info ¶
func (log *UnforwardedLogger) Info(s string, args ...interface{})
func (*UnforwardedLogger) Profile ¶
func (log *UnforwardedLogger) Profile(s string, args ...interface{})
func (*UnforwardedLogger) Warning ¶
func (log *UnforwardedLogger) Warning(s string, args ...interface{})