FILE / ScuroNeko/SNekLog
examples/main.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.
58 lines
1.1 KiB
Go
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())
|
|
}
|