Compare commits
3 Commits
000fe293ee
...
ea0c84547f
Author | SHA1 | Date |
---|---|---|
Jeffrey Paul | ea0c84547f | |
Jeffrey Paul | a852d938e7 | |
Jeffrey Paul | a660203e8f |
|
@ -1 +1,2 @@
|
||||||
.aider*
|
.aider*
|
||||||
|
cmd/example/example
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log/slog"
|
||||||
|
|
||||||
|
_ "sneak.berlin/go/simplelog"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
// log structured data with slog as usual:
|
||||||
|
slog.Info(
|
||||||
|
"User login attempt",
|
||||||
|
slog.String("user", "JohnDoe"),
|
||||||
|
slog.Int("attempt", 3),
|
||||||
|
)
|
||||||
|
slog.Warn(
|
||||||
|
"Configuration mismatch",
|
||||||
|
slog.String("expected", "config.json"),
|
||||||
|
slog.String("found", "config.dev.json"),
|
||||||
|
)
|
||||||
|
slog.Error(
|
||||||
|
"Failed to save data",
|
||||||
|
slog.String("reason", "permission denied"),
|
||||||
|
)
|
||||||
|
}
|
|
@ -16,7 +16,10 @@ func NewConsoleHandler() *ConsoleHandler {
|
||||||
return &ConsoleHandler{}
|
return &ConsoleHandler{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ConsoleHandler) Handle(ctx context.Context, record slog.Record) error {
|
func (c *ConsoleHandler) Handle(
|
||||||
|
ctx context.Context,
|
||||||
|
record slog.Record,
|
||||||
|
) error {
|
||||||
timestamp := time.Now().UTC().Format("2006-01-02T15:04:05.000Z07:00")
|
timestamp := time.Now().UTC().Format("2006-01-02T15:04:05.000Z07:00")
|
||||||
var colorFunc func(format string, a ...interface{}) string
|
var colorFunc func(format string, a ...interface{}) string
|
||||||
|
|
||||||
|
@ -32,16 +35,28 @@ func (c *ConsoleHandler) Handle(ctx context.Context, record slog.Record) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the caller information
|
// Get the caller information
|
||||||
_, file, line, ok := runtime.Caller(5)
|
_, file, line, ok := runtime.Caller(4)
|
||||||
if !ok {
|
if !ok {
|
||||||
file = "???"
|
file = "???"
|
||||||
line = 0
|
line = 0
|
||||||
}
|
}
|
||||||
fmt.Println(colorFunc("%s [%s] %s:%d: %s", timestamp, record.Level, file, line, record.Message))
|
fmt.Println(
|
||||||
|
colorFunc(
|
||||||
|
"%s [%s] %s:%d: %s",
|
||||||
|
timestamp,
|
||||||
|
record.Level,
|
||||||
|
file,
|
||||||
|
line,
|
||||||
|
record.Message,
|
||||||
|
),
|
||||||
|
)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ConsoleHandler) Enabled(ctx context.Context, level slog.Level) bool {
|
func (c *ConsoleHandler) Enabled(
|
||||||
|
ctx context.Context,
|
||||||
|
level slog.Level,
|
||||||
|
) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue