FILE / ScuroNeko/SNekLog
doc.go
Исходный файл и его история в репозитории.
Add Logger.AddReplacer to mask or normalize message text before records reach writers. Document replacement behavior in README and package GoDoc, and update the example. Also fix JSON writer edge cases: - avoid panic on empty message lists - preserve newline semantics when the last message already ends with n - keep original message argument types for custom writers when no replacers are configured Update dependencies and add release notes for the next release.
46 lines
1.5 KiB
Go
46 lines
1.5 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.
|
|
// AddReplacer can be used to mask or normalize message text before records are
|
|
// passed to writers.
|
|
//
|
|
// Basic usage:
|
|
//
|
|
// logger := slog.CreateLogger().
|
|
// Prefix("API").
|
|
// Level(slog.DEBUG).
|
|
// PrintTraceback(true).
|
|
// JsonPretty(true).
|
|
// AddReplacer("secret-token", "<redacted>")
|
|
//
|
|
// text := logger.CreateTextStdoutWriter()
|
|
// jsonFile, err := logger.CreateJsonFileWriter("logs/app.json")
|
|
// if err != nil {
|
|
// panic(err)
|
|
// }
|
|
//
|
|
// logger.AddWriters(text, jsonFile)
|
|
// logger.Infoln("service started", "secret-token")
|
|
//
|
|
// 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
|