log

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2023 License: Apache-2.0 Imports: 3 Imported by: 4,548

README

log

A Go package providing a common logging interface across containerd repositories and a way for clients to use and configure logging in containerd packages.

This package is not intended to be used as a standalone logging package outside of the containerd ecosystem and is intended as an interface wrapper around a logging implementation. In the future this package may be replaced with a common go logging interface.

Project details

log is a containerd sub-project, licensed under the Apache 2.0 license. As a containerd sub-project, you will find the:

information in our containerd/project repository.

Documentation

Overview

Package log provides types and functions related to logging, passing loggers through a context, and attaching context to the logger.

Transitional types

This package contains various types that are aliases for types in logrus. These aliases are intended for transitioning away from hard-coding logrus as logging implementation. Consumers of this package are encouraged to use the type-aliases from this package instead of directly using their logrus equivalent.

The intent is to replace these aliases with locally defined types and interfaces once all consumers are no longer directly importing logrus types.

IMPORTANT: due to the transitional purpose of this package, it is not guaranteed for the full logrus API to be provided in the future. As outlined, these aliases are provided as a step to transition away from a specific implementation which, as a result, exposes the full logrus API. While no decisions have been made on the ultimate design and interface provided by this package, we do not expect carrying "less common" features.

Index

Constants

View Source
const RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00"

RFC3339NanoFixed is time.RFC3339Nano with nanoseconds padded using zeros to ensure the formatted time is always the same number of characters.

Variables

G is a shorthand for GetLogger.

We may want to define this locally to a package to get package tagged log messages.

View Source
var L = &Entry{
	Logger: logrus.StandardLogger(),

	Data: make(Fields, 6),
}

L is an alias for the standard logger.

Functions

func SetFormat

func SetFormat(format OutputFormat) error

SetFormat sets the log output format (TextFormat or JSONFormat).

func SetLevel

func SetLevel(level string) error

SetLevel sets log level globally. It returns an error if the given level is not supported.

level can be one of:

func WithLogger

func WithLogger(ctx context.Context, logger *Entry) context.Context

WithLogger returns a new context with the provided logger. Use in combination with logger.WithField(s) for great effect.

Types

type Entry

type Entry = logrus.Entry

Entry is a logging entry. It contains all the fields passed with [Entry.WithFields]. It's finally logged when Trace, Debug, Info, Warn, Error, Fatal or Panic is called on it. These objects can be reused and passed around as much as you wish to avoid field duplication.

Entry is a transitional type, and currently an alias for logrus.Entry.

func GetLogger

func GetLogger(ctx context.Context) *Entry

GetLogger retrieves the current logger from the context. If no logger is available, the default logger is returned.

type Fields

type Fields = map[string]any

Fields type to pass to "WithFields".

type Level

type Level = logrus.Level

Level is a logging level.

const (
	// TraceLevel level. Designates finer-grained informational events
	// than [DebugLevel].
	TraceLevel Level = logrus.TraceLevel

	// DebugLevel level. Usually only enabled when debugging. Very verbose
	// logging.
	DebugLevel Level = logrus.DebugLevel

	// InfoLevel level. General operational entries about what's going on
	// inside the application.
	InfoLevel Level = logrus.InfoLevel

	// WarnLevel level. Non-critical entries that deserve eyes.
	WarnLevel Level = logrus.WarnLevel

	// ErrorLevel level. Logs errors that should definitely be noted.
	// Commonly used for hooks to send errors to an error tracking service.
	ErrorLevel Level = logrus.ErrorLevel

	// FatalLevel level. Logs and then calls "logger.Exit(1)". It exits
	// even if the logging level is set to Panic.
	FatalLevel Level = logrus.FatalLevel

	// PanicLevel level. This is the highest level of severity. Logs and
	// then calls panic with the message passed to Debug, Info, ...
	PanicLevel Level = logrus.PanicLevel
)

Supported log levels.

func GetLevel

func GetLevel() Level

GetLevel returns the current log level.

type OutputFormat

type OutputFormat string

OutputFormat specifies a log output format.

const (
	// TextFormat represents the text logging format.
	TextFormat OutputFormat = "text"

	// JSONFormat represents the JSON logging format.
	JSONFormat OutputFormat = "json"
)

Supported log output formats.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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