Documentation
¶
Overview ¶
Package log provides a global logger.
Example ¶
This example uses command-line flags to demonstrate various outputs depending on the chosen log level.
package main import ( "flag" "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // setup would normally be an init() function, however, there seems // to be something awry with the testing framework when we set the // global Logger from an init() func setup() { zerolog.TimeFieldFormat = "" zerolog.TimestampFunc = func() time.Time { return time.Date(2008, 1, 8, 17, 5, 05, 0, time.UTC) } log.Logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } func main() { setup() debug := flag.Bool("debug", false, "sets log level to debug") flag.Parse() // Default level for this example is info, unless debug flag is present 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() { // Compute log output only if 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"}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var Logger = zerolog.New(zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339}).With().Timestamp().Logger()
Logger is the global logger.
Functions ¶
func Debug ¶
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")
package main import ( "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // setup would normally be an init() function, however, there seems // to be something awry with the testing framework when we set the // global Logger from an init() func setup() { zerolog.TimeFieldFormat = "" zerolog.TimestampFunc = func() time.Time { return time.Date(2008, 1, 8, 17, 5, 05, 0, time.UTC) } log.Logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } func main() { setup() log.Debug().Msg("hello world") }
Output: {"level":"debug","time":1199811905,"message":"hello world"}
func Error ¶
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")
package main import ( "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // setup would normally be an init() function, however, there seems // to be something awry with the testing framework when we set the // global Logger from an init() func setup() { zerolog.TimeFieldFormat = "" zerolog.TimestampFunc = func() time.Time { return time.Date(2008, 1, 8, 17, 5, 05, 0, time.UTC) } log.Logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } func main() { setup() log.Error().Msg("hello world") }
Output: {"level":"error","time":1199811905,"message":"hello world"}
func Fatal ¶
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")
package main import ( "errors" "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // setup would normally be an init() function, however, there seems // to be something awry with the testing framework when we set the // global Logger from an init() func setup() { zerolog.TimeFieldFormat = "" zerolog.TimestampFunc = func() time.Time { return time.Date(2008, 1, 8, 17, 5, 05, 0, time.UTC) } log.Logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } func main() { 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) // Outputs: {"level":"fatal","time":1199811905,"error":"A repo man spends his life getting into tense situations","service":"myservice","message":"Cannot start myservice"} }
Output:
func Info ¶
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")
package main import ( "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // setup would normally be an init() function, however, there seems // to be something awry with the testing framework when we set the // global Logger from an init() func setup() { zerolog.TimeFieldFormat = "" zerolog.TimestampFunc = func() time.Time { return time.Date(2008, 1, 8, 17, 5, 05, 0, time.UTC) } log.Logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } func main() { setup() log.Info().Msg("hello world") }
Output: {"level":"info","time":1199811905,"message":"hello world"}
Types ¶
This section is empty.