From d5f8e51a14b615c428fb5bc0589a930ab6d51d98 Mon Sep 17 00:00:00 2001 From: Siyuan Miao Date: Fri, 11 Apr 2025 07:58:11 +0200 Subject: [PATCH] chore(log): add terminalLogger --- log.go | 5 +++-- terminal.go | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/log.go b/log.go index 616fd71..f52059e 100644 --- a/log.go +++ b/log.go @@ -47,13 +47,14 @@ var ( websocketLogger = getLogger("websocket") nativeLogger = getLogger("native") ntpLogger = getLogger("ntp") - displayLogger = getLogger("display") - usbLogger = getLogger("usb") jsonRpcLogger = getLogger("jsonrpc") watchdogLogger = getLogger("watchdog") websecureLogger = getLogger("websecure") otaLogger = getLogger("ota") serialLogger = getLogger("serial") + terminalLogger = getLogger("terminal") + displayLogger = getLogger("display") + usbLogger = getLogger("usb") // external components ginLogger = getLogger("gin") ) diff --git a/terminal.go b/terminal.go index 2200064..e98b4de 100644 --- a/terminal.go +++ b/terminal.go @@ -16,6 +16,9 @@ type TerminalSize struct { } func handleTerminalChannel(d *webrtc.DataChannel) { + scopedLogger := terminalLogger.With(). + Uint16("data_channel_id", *d.ID()).Logger() + var ptmx *os.File var cmd *exec.Cmd d.OnOpen(func() { @@ -23,7 +26,7 @@ func handleTerminalChannel(d *webrtc.DataChannel) { var err error ptmx, err = pty.Start(cmd) if err != nil { - logger.Warn().Err(err).Msg("Failed to start pty") + scopedLogger.Warn().Err(err).Msg("Failed to start pty") d.Close() return } @@ -34,13 +37,13 @@ func handleTerminalChannel(d *webrtc.DataChannel) { n, err := ptmx.Read(buf) if err != nil { if err != io.EOF { - logger.Warn().Err(err).Msg("Failed to read from pty") + scopedLogger.Warn().Err(err).Msg("Failed to read from pty") } break } err = d.Send(buf[:n]) if err != nil { - logger.Warn().Err(err).Msg("Failed to send pty output") + scopedLogger.Warn().Err(err).Msg("Failed to send pty output") break } } @@ -63,11 +66,11 @@ func handleTerminalChannel(d *webrtc.DataChannel) { return } } - logger.Warn().Err(err).Msg("Failed to parse terminal size") + scopedLogger.Warn().Err(err).Msg("Failed to parse terminal size") } _, err := ptmx.Write(msg.Data) if err != nil { - logger.Warn().Err(err).Msg("Failed to write to pty") + scopedLogger.Warn().Err(err).Msg("Failed to write to pty") } }) @@ -78,5 +81,10 @@ func handleTerminalChannel(d *webrtc.DataChannel) { if cmd != nil && cmd.Process != nil { _ = cmd.Process.Kill() } + scopedLogger.Info().Msg("Terminal channel closed") + }) + + d.OnError(func(err error) { + scopedLogger.Warn().Err(err).Msg("Terminal channel error") }) }