There is a slight problem here that the requestWrapper would have to be 
implemented very deep through many layers of library. For example there 
might be a data structure passed down a chain of handlers with a custom 
argument structure, which contains a http.Request per some old design 
decisions. Switching to slog probably makes me revisit this design, as I 
cannot easily get the http.Request out of that structure easily. And this 
custom structure is logged all over the place.

Oh well.

On Saturday, July 29, 2023 at 12:18:53 PM UTC+2 Jonathan Amsterdam wrote:

> I would write a type that wraps the request and implements LogValuer. Then 
> you would log the request as
>
>      logger.Debug("req", "r", requestWrapper{r})
>
> On Thursday, July 27, 2023 at 10:01:27 AM UTC-4 Jens-Uwe Mager wrote:
>
>> I am trying to convert some older code to slog and I am running into the 
>> issue that if some data structure contains http.Request I get the message:
>>
>> {"time":"2023-07-27T15:49:04.744214+02:00","level":"DEBUG","msg":"req","r":"!ERROR:json:
>>  
>> unsupported type: func() (io.ReadCloser, error)"}
>>
>> So I believed it would be a good idea to add a LogValue() function to 
>> http.Request that used httputil.DumpRequest(), but that does not work as I 
>> cannot add methods from my code. Any good idea to approach that?
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/a42d3bce-86d0-43dd-8895-4bd3a524cddfn%40googlegroups.com.

Reply via email to