feat: committing in case I regret this

This commit is contained in:
Kyren223
2024-10-05 00:03:23 +03:00
parent a79c02bbc3
commit ddb2878cc2
3 changed files with 61 additions and 4 deletions

View File

@@ -1,7 +1,12 @@
package main
import "fmt"
import (
"log/slog"
"github.com/kyren223/eko/internal/utils"
)
func main() {
fmt.Println("Eko 'Hello, World!' from client")
utils.SetupLogger("Client")
slog.Info("Eko 'Hello, World!'")
}

View File

@@ -1,7 +1,15 @@
package main
import "fmt"
import (
"log/slog"
"github.com/kyren223/eko/internal/utils"
)
func main() {
fmt.Println("Eko 'Hello, World!' from server")
utils.SetupLogger("Server")
slog.Debug("Eko 'Hello, World!'")
slog.Info("Eko 'Hello, World!'")
slog.Warn("Eko 'Hello, World!'")
slog.Error("Eko 'Hello, World!'")
}

44
internal/utils/log.go Normal file
View File

@@ -0,0 +1,44 @@
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}
}