summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/client/client.go9
-rw-r--r--cmd/server/server.go12
-rw-r--r--internal/utils/log.go44
3 files changed, 61 insertions, 4 deletions
diff --git a/cmd/client/client.go b/cmd/client/client.go
index 0b74e45..9554090 100644
--- a/cmd/client/client.go
+++ b/cmd/client/client.go
@@ -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!'")
}
diff --git a/cmd/server/server.go b/cmd/server/server.go
index c9c6238..4ba6978 100644
--- a/cmd/server/server.go
+++ b/cmd/server/server.go
@@ -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!'")
}
diff --git a/internal/utils/log.go b/internal/utils/log.go
new file mode 100644
index 0000000..3548bd3
--- /dev/null
+++ b/internal/utils/log.go
@@ -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}
+}