infra: add logging wrapping

Resolves issues with gcp cloud logging quirks such as field names
This commit is contained in:
Arjun Patel
2026-05-27 15:49:27 -07:00
parent e804cee229
commit 563c91e7d5
30 changed files with 347 additions and 250 deletions
+8 -7
View File
@@ -3,9 +3,10 @@ package pusher
import (
"context"
"encoding/json"
"log/slog"
"sync"
"github.com/flowy-live/llink/internal/utils/flog"
"nhooyr.io/websocket"
)
@@ -37,16 +38,16 @@ func (c *Conn) ReadPump(ctx context.Context, hub *Hub) {
_, data, err := c.ws.Read(ctx)
if err != nil {
if ctx.Err() != nil {
slog.Info("websocket context cancelled", "connId", c.id, "humanId", c.humanID, "error", ctx.Err())
flog.Info("websocket context cancelled", "connId", c.id, "humanId", c.humanID, "error", ctx.Err())
return
}
slog.Warn("websocket read error", "connId", c.id, "humanId", c.humanID, "error", err)
flog.Warn("websocket read error", "connId", c.id, "humanId", c.humanID, "error", err)
return
}
if string(data) == "ping" {
if err := c.ws.Write(ctx, websocket.MessageText, []byte("pong")); err != nil {
slog.Warn("websocket pong write error", "connId", c.id, "error", err)
flog.Warn("websocket pong write error", "connId", c.id, "error", err)
}
continue
}
@@ -92,7 +93,7 @@ func (c *Conn) WritePump(ctx context.Context) {
return
}
if err := c.ws.Write(ctx, websocket.MessageText, data); err != nil {
slog.Debug("websocket write error", "connId", c.id, "error", err)
flog.Debug("websocket write error", "connId", c.id, "error", err)
return
}
}
@@ -103,14 +104,14 @@ func (c *Conn) WritePump(ctx context.Context) {
func (c *Conn) Send(msg ServerMessage) {
data, err := json.Marshal(msg)
if err != nil {
slog.Error("failed to marshal server message", "error", err)
flog.Error("failed to marshal server message", "error", err)
return
}
select {
case c.send <- data:
default:
slog.Warn("slow client, closing connection", "connId", c.id, "humanId", c.humanID)
flog.Warn("slow client, closing connection", "connId", c.id, "humanId", c.humanID)
c.Close()
}
}