How do I structure logs with fields using zerolog in Go?

In Go, you can structure logs with fields using the `zerolog` logging library. This allows you to log with context, making it easier to track and manage logs. Here's how you can do it:

import ( "github.com/rs/zerolog" "github.com/rs/zerolog/log" "os" ) func main() { // Set the global logger to log to stdout in JSON format. log.Logger = zerolog.New(os.Stdout).With(). Timestamp(). Logger() // Log messages with structured fields. log.Info(). Str("component", "auth"). Str("user", "john_doe"). Msg("User logged in") log.Error(). Str("component", "database"). Err(err). Msg("Failed to connect to database") }

keywords: zerolog Go logging structured logging Go logger logging fields