11package logger
22
33import (
4+ "encoding/json"
45 "fmt"
56 "os"
67 "sync"
@@ -140,11 +141,19 @@ func (c *CNSLogger) Request(tag string, request any, err error) {
140141 return
141142 }
142143
144+ //an alternative is to make al request types support stringer/fmt.formatter but thats easy to mess up.
145+ var requestString string
146+ if bytes , err := json .Marshal (request ); err != nil {
147+ requestString = string (bytes )
148+ } else {
149+ requestString = fmt .Sprintf ("Failed to json marshal %s, %+v" , err , request )
150+ }
151+
143152 var msg string
144153 if err == nil {
145- msg = fmt .Sprintf ("[%s] Received %T %+v ." , tag , request , request )
154+ msg = fmt .Sprintf ("[%s] Received %T %s ." , tag , request , requestString )
146155 } else {
147- msg = fmt .Sprintf ("[%s] Failed to decode %T %+v %s." , tag , request , request , err .Error ())
156+ msg = fmt .Sprintf ("[%s] Failed to decode %T %s %s." , tag , request , requestString , err .Error ())
148157 }
149158
150159 c .sendTraceInternal (msg )
@@ -157,14 +166,21 @@ func (c *CNSLogger) Response(tag string, response any, returnCode types.Response
157166 return
158167 }
159168
169+ var responseString string
170+ if bytes , err := json .Marshal (response ); err != nil {
171+ responseString = string (bytes )
172+ } else {
173+ responseString = fmt .Sprintf ("Failed to json marshal %s, %+v" , err , responseString )
174+ }
175+
160176 var msg string
161177 switch {
162178 case err == nil && returnCode == 0 :
163- msg = fmt .Sprintf ("[%s] Sent %T %+v ." , tag , response , response )
179+ msg = fmt .Sprintf ("[%s] Sent %T %s ." , tag , response , responseString )
164180 case err != nil :
165- msg = fmt .Sprintf ("[%s] Code:%s, %+v %s." , tag , returnCode .String (), response , err .Error ())
181+ msg = fmt .Sprintf ("[%s] Code:%s, %s %s." , tag , returnCode .String (), responseString , err .Error ())
166182 default :
167- msg = fmt .Sprintf ("[%s] Code:%s, %+v ." , tag , returnCode .String (), response )
183+ msg = fmt .Sprintf ("[%s] Code:%s, %s ." , tag , returnCode .String (), responseString )
168184 }
169185
170186 c .sendTraceInternal (msg )
@@ -177,14 +193,28 @@ func (c *CNSLogger) ResponseEx(tag string, request, response any, returnCode typ
177193 return
178194 }
179195
196+ var requestString string
197+ if bytes , err := json .Marshal (request ); err != nil {
198+ requestString = string (bytes )
199+ } else {
200+ requestString = fmt .Sprintf ("Failed to json marshal %s, %+v" , err , request )
201+ }
202+
203+ var responseString string
204+ if bytes , err := json .Marshal (response ); err != nil {
205+ responseString = string (bytes )
206+ } else {
207+ responseString = fmt .Sprintf ("Failed to json marshal %s, %+v" , err , responseString )
208+ }
209+
180210 var msg string
181211 switch {
182212 case err == nil && returnCode == 0 :
183- msg = fmt .Sprintf ("[%s] Sent %T %+v %T %+v ." , tag , request , request , response , response )
213+ msg = fmt .Sprintf ("[%s] Sent %T %s %T %s ." , tag , request , requestString , response , responseString )
184214 case err != nil :
185- msg = fmt .Sprintf ("[%s] Code:%s, %+v , %+v , %s." , tag , returnCode .String (), request , response , err .Error ())
215+ msg = fmt .Sprintf ("[%s] Code:%s, %s , %s , %s." , tag , returnCode .String (), requestString , responseString , err .Error ())
186216 default :
187- msg = fmt .Sprintf ("[%s] Code:%s, %+v , %+v ." , tag , returnCode .String (), request , response )
217+ msg = fmt .Sprintf ("[%s] Code:%s, %s , %s ." , tag , returnCode .String (), requestString , responseString )
188218 }
189219
190220 c .sendTraceInternal (msg )
0 commit comments