// Package slog provides a small structured logger that can write the same // record to text and JSON outputs. // // A Logger can fan out records to stdout, files, or any external io.Writer. // Text writers can include timestamps and a compact traceback frame. JSON // writers always emit a structured traceback slice. // // CreateLogger uses the following defaults: // - prefix: "LOG" // - level: FATAL, which enables info, warn, error, and fatal records // - text timestamps: enabled // - text traceback: disabled // - pretty JSON: disabled // // Call Level(DEBUG) to enable all records, including debug messages. // // Basic usage: // // logger := slog.CreateLogger(). // Prefix("API"). // Level(slog.DEBUG). // PrintTraceback(true). // JsonPretty(true) // // text := logger.CreateTextStdoutWriter() // jsonFile, err := logger.CreateJsonFileWriter("logs/app.json") // if err != nil { // panic(err) // } // // logger.AddWriters(text, jsonFile) // logger.Infoln("service started") // // if err := logger.Close(); err != nil { // panic(err) // } // // Writers created with CreateTextFileWriter or CreateJsonFileWriter are owned by // the logger and are closed by Logger.Close. Writers created from existing // io.Writer values through CreateTextWriter or CreateJsonWriter remain owned by // the caller and are not closed by the logger. package slog