43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
// 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
|