FILE / ScuroNeko/SNekLog

examples/main.go

Исходный файл и его история в репозитории.
FILE 9268e222ab817945dcffab143bd71ea4de1ae7f7
Files
SNekLog/examples/main.go
T
ScuroNeko 9268e222ab feat: add message replacement for log records
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.
2026-04-20 18:00:11 +03:00

58 lines
1.1 KiB
Go

package main
import (
"bytes"
"fmt"
"git.nix13.pw/scuroneko/slog"
)
func main() {
logger := slog.CreateLogger().
Prefix("EXAMPLE").
Level(slog.DEBUG).
JsonPretty(true).
AddReplacer("SOME_SECRET", "<Secret>")
textStdout := logger.CreateTextStdoutWriter()
jsonStdout := logger.CreateJsonStdoutWriter()
textFile, err := logger.CreateTextFileWriter("logs/text.log")
if err != nil {
logger.Close()
panic(err)
}
jsonFile, err := logger.CreateJsonFileWriter("logs/json.log")
if err != nil {
logger.Close()
panic(err)
}
var externalBuffer bytes.Buffer
externalText := logger.CreateTextWriter(&externalBuffer)
externalJSON := logger.CreateJsonWriter(&externalBuffer)
logger.AddWriters(
textStdout,
jsonStdout,
textFile,
jsonFile,
externalText,
externalJSON,
)
logger.Infoln("service started")
logger.Warnln("cache miss")
logger.Errorln("request failed")
logger.Debugln("debug details")
logger.Infoln("sensitive info, SOME_SECRET")
if err := logger.Close(); err != nil {
panic(err)
}
fmt.Println("external buffer contents:")
fmt.Println(externalBuffer.String())
}