35 lines
662 B
Go
35 lines
662 B
Go
package logging
|
|
|
|
import (
|
|
"context"
|
|
"log/slog"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
const LevelQ = slog.Level(-6)
|
|
|
|
func TestDoAFlip(t *testing.T) {
|
|
t.Name()
|
|
replacer := func(groups []string, a slog.Attr) slog.Attr {
|
|
if a.Key == slog.LevelKey {
|
|
level := a.Value.Any().(slog.Level)
|
|
switch level {
|
|
case LevelQ:
|
|
a.Value = slog.StringValue("q")
|
|
}
|
|
}
|
|
return a
|
|
}
|
|
h := NewFormattedHandler(os.Stderr, Options{
|
|
Format: "{{.Time}} [{{.Level}}] {{.Message}} | {{ rest }}",
|
|
Level: LevelQ,
|
|
ReplaceAttr: replacer,
|
|
})
|
|
logger := slog.New(h)
|
|
slog.SetDefault(logger)
|
|
|
|
logger.Debug("hello", "btfash", true)
|
|
logger.Log(context.TODO(), LevelQ, "hi")
|
|
}
|