Files
eko/internal/utils/log.go
2024-10-05 00:03:23 +03:00

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}
}