mirror of
https://github.com/Kyren223/eko.git
synced 2025-09-05 21:18:14 +00:00
45 lines
984 B
Go
45 lines
984 B
Go
package utils
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"io"
|
|
"log"
|
|
"log/slog"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
func SetupLogger(name string) {
|
|
logger := slog.New(CustomHandler{os.Stdout, name, nil})
|
|
slog.SetDefault(logger)
|
|
slog.SetLogLoggerLevel()
|
|
}
|
|
|
|
type CustomHandler struct {
|
|
writer io.Writer
|
|
group string
|
|
attrs []slog.Attr
|
|
}
|
|
|
|
func (h CustomHandler) Handle(ctx context.Context, r slog.Record) error {
|
|
// timestamp := time.Now().Format(time.RFC3339Nano)
|
|
timestamp := time.Now().Format(time.TimeOnly)
|
|
severity := r.Level.String()
|
|
_, err := fmt.Fprintf(h.writer, "[%s] [%s/%s]: %s\n", timestamp, h.group, severity, r.Message)
|
|
return err
|
|
}
|
|
|
|
func (h CustomHandler) Enabled(ctx context.Context, level slog.Level) bool {
|
|
slog.Handler
|
|
return true
|
|
}
|
|
|
|
func (h CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
|
|
return &CustomHandler{h.writer, h.group, append(h.attrs, attrs...)}
|
|
}
|
|
|
|
func (h CustomHandler) WithGroup(name string) slog.Handler {
|
|
return &CustomHandler{h.writer, name, h.attrs}
|
|
}
|