log

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2023 License: Apache-2.0 Imports: 18 Imported by: 1

Documentation

Index

Examples

Constants

View Source
const (
	// DefaultConsoleLevel is the default log level for the console.
	DefaultConsoleLevel = "info"
	// DefaultStacktraceLevel is the default log level for which stack traces are included.
	DefaultStacktraceLevel = "none"
)

Variables

View Source
var ConsoleLevel httpLevel

ConsoleLevel allows interacting with the logging level at runtime. It is initialized with after a successful call to Setup.

Functions

func CtxWith

func CtxWith(ctx context.Context, logger Logger) context.Context

CtxWith returns a new context, based on ctx, that embeds argument logger. The logger can be recovered using GetLogger. Attaching a logger to a context which already contains one will overwrite the existing value.

func Debug

func Debug(msg string, ctx ...interface{})

Debug logs at debug level.

func Discard

func Discard()

Discard sets the logger up to discard all log entries. This is useful for testing.

func Error

func Error(msg string, ctx ...interface{})

Error logs at error level.

func Flush

func Flush()

Flush writes the logs to the underlying buffer.

func HandlePanic

func HandlePanic()

HandlePanic catches panics and logs them.

func Info

func Info(msg string, ctx ...interface{})

Info logs at info level.

func SafeDebug

func SafeDebug(l Logger, msg string, fields ...interface{})

SafeDebug logs to l only if l is not nil.

func SafeError

func SafeError(l Logger, msg string, fields ...interface{})

SafeError logs to l only if l is not nil.

func SafeInfo

func SafeInfo(l Logger, msg string, fields ...interface{})

SafeInfo logs to l only if l is not nil.

func Setup

func Setup(cfg Config, opts ...Option) error

Setup configures the logging library with the given config.

Types

type Config

type Config struct {
	config.NoValidator
	// Console is the configuration for the console logging.
	Console ConsoleConfig `toml:"console,omitempty"`
}

Config is the configuration for the logger.

func (*Config) ConfigName

func (c *Config) ConfigName() string

ConfigName returns the name this config should have in a struct embedding this.

func (*Config) InitDefaults

func (c *Config) InitDefaults()

InitDefaults populates unset fields in cfg to their default values (if they have one).

func (*Config) Sample

func (c *Config) Sample(dst io.Writer, path config.Path, ctx config.CtxMap)

Sample writes the sample configuration to the dst writer.

type ConsoleConfig

type ConsoleConfig struct {
	// Level of console logging (defaults to DefaultConsoleLevel).
	Level string `toml:"level,omitempty"`
	// Format of the console logging. (human|json)
	Format string `toml:"format,omitempty"`
	// StacktraceLevel sets from which level stacktraces are included.
	StacktraceLevel string `toml:"stacktrace_level,omitempty"`
	// DisableCaller stops annotating logs with the calling function's file
	// name and line number. By default, all logs are annotated.
	DisableCaller bool `toml:"disable_caller,omitempty"`
}

ConsoleConfig is the config for the console logger.

func (*ConsoleConfig) InitDefaults

func (c *ConsoleConfig) InitDefaults()

InitDefaults populates unset fields in cfg to their default values (if they have one).

type DebugID

type DebugID uint32

DebugID is used to correlate behavior in logs. A DebugID is allocated for each outgoing request/response or notify message exchange, and for each handler executed during ListenAndServe.

func NewDebugID

func NewDebugID() DebugID

NewDebugID creates a new debug id.

func (DebugID) String

func (id DebugID) String() string

type DiscardLogger

type DiscardLogger struct{}

DiscardLogger implements the Logger interface and discards all messages. Subloggers created from this logger will also discard all messages and ignore the additional context.

To see how to use this, see the example.

Example
// LITERALINCLUDE ExampleDiscardLogger START
type Server struct {
	// Logger is used by the server to log information about internal events. If nil, logging
	// is disabled.
	Logger Logger
}

// Use a func because this is a godoc example, but this would normally be something like
// s.Run().
Run := func(s *Server) {
	if s.Logger == nil {
		s.Logger = DiscardLogger{}
	}
	s.Logger.Debug("this message is discarded now")
}

Run(&Server{})
// LITERALINCLUDE ExampleDiscardLogger END
Output:

func (DiscardLogger) Debug

func (DiscardLogger) Debug(msg string, ctx ...interface{})

func (DiscardLogger) Enabled

func (DiscardLogger) Enabled(lvl Level) bool

func (DiscardLogger) Error

func (DiscardLogger) Error(msg string, ctx ...interface{})

func (DiscardLogger) Info

func (DiscardLogger) Info(msg string, ctx ...interface{})

func (DiscardLogger) New

func (d DiscardLogger) New(ctx ...interface{}) Logger

type EntriesCounter

type EntriesCounter struct {
	Debug metrics.Counter
	Info  metrics.Counter
	Error metrics.Counter
}

EntriesCounter defines the metrics that are incremented when emitting a log entry.

type Level

type Level zapcore.Level
const (
	DebugLevel Level = Level(zapcore.DebugLevel)
	InfoLevel  Level = Level(zapcore.InfoLevel)
	ErrorLevel Level = Level(zapcore.ErrorLevel)
)

type Logger

type Logger interface {
	New(ctx ...interface{}) Logger
	Debug(msg string, ctx ...interface{})
	Info(msg string, ctx ...interface{})
	Error(msg string, ctx ...interface{})
	Enabled(lvl Level) bool
}

Logger describes the logger interface.

func FromCtx

func FromCtx(ctx context.Context) Logger

FromCtx returns the logger embedded in ctx if one exists, or the root logger otherwise. FromCtx is guaranteed to never return nil.

func New

func New(ctx ...interface{}) Logger

New creates a logger with the given context.

func Root

func Root() Logger

Root returns the root logger. It's a logger without any context.

func SafeNewLogger

func SafeNewLogger(l Logger, fields ...interface{}) Logger

SafeNewLogger creates a new logger as a child of l only if l is not nil. If l is nil, then nil is returned.

func WithLabels

func WithLabels(ctx context.Context, labels ...interface{}) (context.Context, Logger)

WithLabels returns context with additional labels added to the logger. For convenience it also returns the logger itself.

func WithOptions

func WithOptions(opts ...Option) Logger

WithOptions returns the logger with the options applied.

type Option

type Option func(o *options)

Option is a function that sets an option.

func AddCallerSkip

func AddCallerSkip(skip int) Option

AddCallerSkip increases the number of callers skipped by caller annotation. When building wrappers around the Logger, supplying this Option prevents the Logger from always reporting the wrapper code as the caller.

func WithEntriesCounter

func WithEntriesCounter(m EntriesCounter) Option

WithEntriesCounter configures a metric counters that are incremented with every emitted log entry.

type Span

type Span struct {
	Logger Logger
	Span   opentracing.Span
}

Span is a logger that attaches all logs to the span.

func (Span) Debug

func (s Span) Debug(msg string, ctx ...interface{})

Debug logs to the logger and span.

func (Span) Enabled

func (s Span) Enabled(lvl Level) bool

func (Span) Error

func (s Span) Error(msg string, ctx ...interface{})

Error logs to the logger and span.

func (Span) Info

func (s Span) Info(msg string, ctx ...interface{})

Info logs to the logger and span.

func (Span) New

func (s Span) New(ctx ...interface{}) Logger

New creates a new logger with the context attached.

Directories

Path Synopsis
Package mock_log is a generated GoMock package.
Package mock_log is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL