mirror of https://github.com/jetkvm/kvm.git
chore(log): add terminalLogger
This commit is contained in:
parent
612c50bfe2
commit
d5f8e51a14
5
log.go
5
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")
|
||||
)
|
||||
|
|
18
terminal.go
18
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")
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue