From 6220d02f3206a41633082e9263c90185f12dc964 Mon Sep 17 00:00:00 2001 From: yusing Date: Fri, 7 Mar 2025 02:11:52 +0800 Subject: [PATCH] api: log api error --- internal/api/v1/dockerapi/info.go | 2 +- internal/api/v1/dockerapi/logs.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/api/v1/dockerapi/info.go b/internal/api/v1/dockerapi/info.go index 02b00dd..373895d 100644 --- a/internal/api/v1/dockerapi/info.go +++ b/internal/api/v1/dockerapi/info.go @@ -30,7 +30,7 @@ func (d *dockerInfo) MarshalJSON() ([]byte, error) { } func DockerInfo(w http.ResponseWriter, r *http.Request) { - serveHTTP[dockerInfo, []dockerInfo](w, r, GetDockerInfo) + serveHTTP[dockerInfo](w, r, GetDockerInfo) } func GetDockerInfo(ctx context.Context, dockerClients DockerClients) ([]dockerInfo, gperr.Error) { diff --git a/internal/api/v1/dockerapi/logs.go b/internal/api/v1/dockerapi/logs.go index 19d735d..f5f128c 100644 --- a/internal/api/v1/dockerapi/logs.go +++ b/internal/api/v1/dockerapi/logs.go @@ -6,6 +6,7 @@ import ( "github.com/coder/websocket" "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/stdcopy" + "github.com/yusing/go-proxy/internal/logging" "github.com/yusing/go-proxy/internal/net/gphttp" "github.com/yusing/go-proxy/internal/net/gphttp/gpwebsocket" "github.com/yusing/go-proxy/internal/utils/strutils" @@ -55,6 +56,13 @@ func Logs(w http.ResponseWriter, r *http.Request) { if err != nil { return } + writer := gpwebsocket.NewWriter(r.Context(), conn, websocket.MessageText) - stdcopy.StdCopy(writer, writer, logs) //de-multiplex logs + _, err = stdcopy.StdCopy(writer, writer, logs) // de-multiplex logs + if err != nil { + logging.Err(err). + Str("server", server). + Str("container", containerID). + Msg("failed to de-multiplex logs") + } }