'Console logger with json formatter does not serialize objects

I try to use default .NET core logging tools without any third party libs. So, question. Does console logger with Json formatter support json serialization of objects?

I have the following config in appsettings

"Logging": {
    "Console": {
      "LogLevel": {
        "Default": "Debug",
        "System": "Information",
        "Microsoft": "Information",
        "Microsoft.Hosting.Lifetime": "Information"
      },
      "FormatterName": "json",
      "FormatterOptions": {
        "SingleLine": true,        
        "JsonWriterOptions": {
          "Indented": true
        }
      }
    }
  },

The following line

logger.LogDebug("RequestId:{requestId} ResponseInfo: {@response} ", requestName, response);

produces the output with string representation of @response object, internally it still invokes ToString(), but docs in Caution section says that

The logging infrastructure itself already manages the serialization of log messages, so if you're to pass in a log message that is already serialized—it will be double serialized docs

And this point me that it should serialize object.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source