chore(log): add jsonRpcLogger

This commit is contained in:
Siyuan Miao 2025-04-11 07:41:21 +02:00
parent 82c018a2f6
commit 04aa35249a
2 changed files with 30 additions and 10 deletions

View File

@ -47,12 +47,12 @@ type BacklightSettings struct {
func writeJSONRPCResponse(response JSONRPCResponse, session *Session) { func writeJSONRPCResponse(response JSONRPCResponse, session *Session) {
responseBytes, err := json.Marshal(response) responseBytes, err := json.Marshal(response)
if err != nil { if err != nil {
logger.Warn().Err(err).Msg("Error marshalling JSONRPC response") jsonRpcLogger.Warn().Err(err).Msg("Error marshalling JSONRPC response")
return return
} }
err = session.RPCChannel.SendText(string(responseBytes)) err = session.RPCChannel.SendText(string(responseBytes))
if err != nil { if err != nil {
logger.Warn().Err(err).Msg("Error sending JSONRPC response") jsonRpcLogger.Warn().Err(err).Msg("Error sending JSONRPC response")
return return
} }
} }
@ -65,16 +65,20 @@ func writeJSONRPCEvent(event string, params interface{}, session *Session) {
} }
requestBytes, err := json.Marshal(request) requestBytes, err := json.Marshal(request)
if err != nil { if err != nil {
logger.Warn().Err(err).Msg("Error marshalling JSONRPC event") jsonRpcLogger.Warn().Err(err).Msg("Error marshalling JSONRPC event")
return return
} }
if session == nil || session.RPCChannel == nil { if session == nil || session.RPCChannel == nil {
logger.Info().Msg("RPC channel not available") jsonRpcLogger.Info().Msg("RPC channel not available")
return return
} }
err = session.RPCChannel.SendText(string(requestBytes))
requestString := string(requestBytes)
jsonRpcLogger.Info().Str("data", requestString).Msg("Sending JSONRPC event")
err = session.RPCChannel.SendText(requestString)
if err != nil { if err != nil {
logger.Warn().Err(err).Msg("Error sending JSONRPC event") jsonRpcLogger.Warn().Err(err).Str("data", requestString).Msg("Error sending JSONRPC event")
return return
} }
} }
@ -83,6 +87,11 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
var request JSONRPCRequest var request JSONRPCRequest
err := json.Unmarshal(message.Data, &request) err := json.Unmarshal(message.Data, &request)
if err != nil { if err != nil {
jsonRpcLogger.Warn().
Str("data", string(message.Data)).
Err(err).
Msg("Error unmarshalling JSONRPC request")
errorResponse := JSONRPCResponse{ errorResponse := JSONRPCResponse{
JSONRPC: "2.0", JSONRPC: "2.0",
Error: map[string]interface{}{ Error: map[string]interface{}{
@ -95,7 +104,13 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
return return
} }
logger.Trace().Str("method", request.Method).Interface("params", request.Params).Interface("id", request.ID).Msg("Received RPC request") scopedLogger := jsonRpcLogger.With().
Str("method", request.Method).
Interface("params", request.Params).
Interface("id", request.ID).Logger()
scopedLogger.Trace().Msg("Received RPC request")
handler, ok := rpcHandlers[request.Method] handler, ok := rpcHandlers[request.Method]
if !ok { if !ok {
errorResponse := JSONRPCResponse{ errorResponse := JSONRPCResponse{
@ -110,9 +125,10 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
return return
} }
logger.Trace().Str("method", request.Method).Interface("id", request.ID).Msg("Calling RPC handler") scopedLogger.Trace().Msg("Calling RPC handler")
result, err := callRPCHandler(handler, request.Params) result, err := callRPCHandler(handler, request.Params)
if err != nil { if err != nil {
scopedLogger.Error().Err(err).Msg("Error calling RPC handler")
errorResponse := JSONRPCResponse{ errorResponse := JSONRPCResponse{
JSONRPC: "2.0", JSONRPC: "2.0",
Error: map[string]interface{}{ Error: map[string]interface{}{
@ -126,7 +142,8 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
return return
} }
logger.Trace().Interface("result", result).Interface("id", request.ID).Msg("RPC handler returned") scopedLogger.Trace().Interface("result", result).Msg("RPC handler returned")
response := JSONRPCResponse{ response := JSONRPCResponse{
JSONRPC: "2.0", JSONRPC: "2.0",
Result: result, Result: result,

5
log.go
View File

@ -49,8 +49,11 @@ var (
ntpLogger = getLogger("ntp") ntpLogger = getLogger("ntp")
displayLogger = getLogger("display") displayLogger = getLogger("display")
usbLogger = getLogger("usb") usbLogger = getLogger("usb")
ginLogger = getLogger("gin") jsonRpcLogger = getLogger("jsonrpc")
websecureLogger = getLogger("websecure") websecureLogger = getLogger("websecure")
// external components
ginLogger = getLogger("gin")
) )
func updateLogLevel() { func updateLogLevel() {