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")
|
websocketLogger = getLogger("websocket")
|
||||||
nativeLogger = getLogger("native")
|
nativeLogger = getLogger("native")
|
||||||
ntpLogger = getLogger("ntp")
|
ntpLogger = getLogger("ntp")
|
||||||
displayLogger = getLogger("display")
|
|
||||||
usbLogger = getLogger("usb")
|
|
||||||
jsonRpcLogger = getLogger("jsonrpc")
|
jsonRpcLogger = getLogger("jsonrpc")
|
||||||
watchdogLogger = getLogger("watchdog")
|
watchdogLogger = getLogger("watchdog")
|
||||||
websecureLogger = getLogger("websecure")
|
websecureLogger = getLogger("websecure")
|
||||||
otaLogger = getLogger("ota")
|
otaLogger = getLogger("ota")
|
||||||
serialLogger = getLogger("serial")
|
serialLogger = getLogger("serial")
|
||||||
|
terminalLogger = getLogger("terminal")
|
||||||
|
displayLogger = getLogger("display")
|
||||||
|
usbLogger = getLogger("usb")
|
||||||
// external components
|
// external components
|
||||||
ginLogger = getLogger("gin")
|
ginLogger = getLogger("gin")
|
||||||
)
|
)
|
||||||
|
|
18
terminal.go
18
terminal.go
|
@ -16,6 +16,9 @@ type TerminalSize struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleTerminalChannel(d *webrtc.DataChannel) {
|
func handleTerminalChannel(d *webrtc.DataChannel) {
|
||||||
|
scopedLogger := terminalLogger.With().
|
||||||
|
Uint16("data_channel_id", *d.ID()).Logger()
|
||||||
|
|
||||||
var ptmx *os.File
|
var ptmx *os.File
|
||||||
var cmd *exec.Cmd
|
var cmd *exec.Cmd
|
||||||
d.OnOpen(func() {
|
d.OnOpen(func() {
|
||||||
|
@ -23,7 +26,7 @@ func handleTerminalChannel(d *webrtc.DataChannel) {
|
||||||
var err error
|
var err error
|
||||||
ptmx, err = pty.Start(cmd)
|
ptmx, err = pty.Start(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warn().Err(err).Msg("Failed to start pty")
|
scopedLogger.Warn().Err(err).Msg("Failed to start pty")
|
||||||
d.Close()
|
d.Close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -34,13 +37,13 @@ func handleTerminalChannel(d *webrtc.DataChannel) {
|
||||||
n, err := ptmx.Read(buf)
|
n, err := ptmx.Read(buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != io.EOF {
|
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
|
break
|
||||||
}
|
}
|
||||||
err = d.Send(buf[:n])
|
err = d.Send(buf[:n])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warn().Err(err).Msg("Failed to send pty output")
|
scopedLogger.Warn().Err(err).Msg("Failed to send pty output")
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,11 +66,11 @@ func handleTerminalChannel(d *webrtc.DataChannel) {
|
||||||
return
|
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)
|
_, err := ptmx.Write(msg.Data)
|
||||||
if err != nil {
|
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 {
|
if cmd != nil && cmd.Process != nil {
|
||||||
_ = cmd.Process.Kill()
|
_ = 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