Log

log

import "github.com/rs/zerolog/log"

Package log provides a global logger for zerolog.

Variables

Logger is the global logger.

Source: log/log.go:14

var Logger = zerolog.New(os.Stderr).With().Timestamp().Logger()

Functions

func Ctx(ctx context.Context) *zerolog.Logger

Source: log/log.go:129

Ctx returns the Logger associated with the ctx. If no logger is associated, a disabled logger is returned.

Example

Example of using the Ctx function in the log package to log with context

{
	setup()

	hooked := log.Hook(captainHook)
	ctx := context.WithValue(context.Background(), valueKey, "12345")
	logger := hooked.With().Ctx(ctx).Logger()
	log.Ctx(logger.WithContext(ctx)).Info().Msg("hello world")

}

Output:

{"level":"info","time":1199811905,"key":"12345","is_error":false,"msg_len":11,"message":"hello world"}

func Debug() *zerolog.Event

Source: log/log.go:59

Debug starts a new message with debug level.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "debug")

{
	setup()
	log.Debug().Msg("hello world")

}

Output:

{"level":"debug","time":1199811905,"message":"hello world"}

func Err(err error) *zerolog.Event

Source: log/log.go:45

Err starts a new message with error level with err as a field if not nil or with info level if err is nil.

You must call Msg on the returned event in order to send the event.

Example

Example of a conditional level based on the presence of an error.

{
	setup()
	err := errors.New("some error")
	log.Err(err).Msg("hello world")
	log.Err(nil).Msg("hello world")

}

Output:

{"level":"error","error":"some error","time":1199811905,"message":"hello world"}
{"level":"info","time":1199811905,"message":"hello world"}

func Error() *zerolog.Event

Source: log/log.go:80

Error starts a new message with error level.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "error")

{
	setup()
	log.Error().Msg("hello world")

}

Output:

{"level":"error","time":1199811905,"message":"hello world"}

func Fatal() *zerolog.Event

Source: log/log.go:88

Fatal starts a new message with fatal level. The os.Exit(1) function is called by the Msg method.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "fatal")

{
	setup()
	err := errors.New("A repo man spends his life getting into tense situations")
	service := "myservice"

	log.Fatal().
		Err(err).
		Str("service", service).
		Msgf("Cannot start %s", service)

}

func Hook(h zerolog.Hook) zerolog.Logger

Source: log/log.go:37

Hook returns a logger with the h Hook.

func Info() *zerolog.Event

Source: log/log.go:66

Info starts a new message with info level.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "info")

{
	setup()
	log.Info().Msg("hello world")

}

Output:

{"level":"info","time":1199811905,"message":"hello world"}

func Level(level zerolog.Level) zerolog.Logger

Source: log/log.go:27

Level creates a child logger with the minimum accepted level set to level.

Example

Example of using the Level function to set the log level

{
	setup()

	leveled := log.Level(zerolog.ErrorLevel)
	leveled.Info().Msg("hello world")
	leveled.Error().Msg("I said HELLO")

}

Output:

{"level":"error","time":1199811905,"message":"I said HELLO"}

func Log() *zerolog.Event

Source: log/log.go:111

Log starts a new message with no level. Setting zerolog.GlobalLevel to zerolog.Disabled will still disable events produced by this method.

You must call Msg on the returned event in order to send the event.

Example

Example of a log with no particular "level"

{
	setup()
	log.Log().Msg("hello world")

}

Output:

{"time":1199811905,"message":"hello world"}

func Output(w io.Writer) zerolog.Logger

Source: log/log.go:17

Output duplicates the global logger and sets w as its output.

Example

Example of using the Output function in the log package to change the output destination

{
	setup()

	out := &bytes.Buffer{}
	tee := log.Output(out)
	tee.Info().Msg("hello world")
	written := out.Len()

	log.Info().Int("bytes", written).Msg("wrote")

}

Output:

{"level":"info","bytes":59,"time":1199811905,"message":"wrote"}

func Panic() *zerolog.Event

Source: log/log.go:96

Panic starts a new message with panic level. The message is also sent to the panic function.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "panic")

{
	setup()

	log.Panic().Msg("Cannot start")

}

func Print(v ...interface{})

Source: log/log.go:117

Print sends a log event using debug level and no extra field. Arguments are handled in the manner of fmt.Print.

Example

Simple logging example using the Print function in the log package Note that both Print and Printf are at the debug log level by default

{
	setup()

	log.Print("hello world")

}

Output:

{"level":"debug","time":1199811905,"message":"hello world"}

func Printf(format string, v ...interface{})

Source: log/log.go:123

Printf sends a log event using debug level and no extra field. Arguments are handled in the manner of fmt.Printf.

Example

Simple logging example using the Printf function in the log package

{
	setup()

	log.Printf("hello %s", "world")

}

Output:

{"level":"debug","time":1199811905,"message":"hello world"}

func Sample(s zerolog.Sampler) zerolog.Logger

Source: log/log.go:32

Sample returns a logger with the s sampler.

Example

Example of using the Sample function in the log package to set a sampler

{
	setup()

	sampled := log.Sample(&zerolog.BasicSampler{N: 2})
	sampled.Info().Msg("hello world")
	sampled.Info().Msg("I said, hello world")
	sampled.Info().Msg("Can you here me now world")

}

Output:

{"level":"info","time":1199811905,"message":"hello world"}
{"level":"info","time":1199811905,"message":"Can you here me now world"}

func Trace() *zerolog.Event

Source: log/log.go:52

Trace starts a new message with trace level.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "trace")

{
	setup()
	log.Trace().Msg("hello world")

}

Output:

{"level":"trace","time":1199811905,"message":"hello world"}

func Warn() *zerolog.Event

Source: log/log.go:73

Warn starts a new message with warn level.

You must call Msg on the returned event in order to send the event.

Example

Example of a log at a particular "level" (in this case, "warn")

{
	setup()
	log.Warn().Msg("hello world")

}

Output:

{"level":"warn","time":1199811905,"message":"hello world"}

func With() zerolog.Context

Source: log/log.go:22

With creates a child logger with the field added to its context.

Example

Example of using the With function to add context fields

{
	setup()

	augmented := log.With().Str("service", "myservice").Logger()
	augmented.Info().Msg("hello world")

}

Output:

{"level":"info","service":"myservice","time":1199811905,"message":"hello world"}

func WithLevel(level zerolog.Level) *zerolog.Event

Source: log/log.go:103

WithLevel starts a new message with level.

You must call Msg on the returned event in order to send the event.

Example

Example of using the WithLevel function to set the log level

{
	setup()

	event := log.WithLevel(zerolog.ErrorLevel)
	event.Msg("taxes are due")

}

Output:

{"level":"error","time":1199811905,"message":"taxes are due"}

Examples

Example

This example uses command-line flags to demonstrate various outputs depending on the chosen log level.

{
	setup()
	debug := flag.Bool("debug", false, "sets log level to debug")

	flag.Parse()

	zerolog.SetGlobalLevel(zerolog.InfoLevel)
	if *debug {
		zerolog.SetGlobalLevel(zerolog.DebugLevel)
	}

	log.Debug().Msg("This message appears only when log level set to Debug")
	log.Info().Msg("This message appears when log level set to Debug or Info")

	if e := log.Debug(); e.Enabled() {

		value := "bar"
		e.Str("foo", value).Msg("some debug message")
	}

}

Output:

{"level":"info","time":1199811905,"message":"This message appears when log level set to Debug or Info"}

Edit this page

Sourcey-generated documentation mirror for rs/zerolog (MIT), built from source at a pinned commit.Docs by Sourcey