NLog.Web.AspNetCore formatiert das Objekt nicht als JSONC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 NLog.Web.AspNetCore formatiert das Objekt nicht als JSON

Post by Anonymous »

Ich versuche, Fehlerobjekte als JSON in meiner asp.net 9-Web-API zu protokollieren. Ich folge dem Wiki in der NLog-Dokumentation: Strukturierte Protokollierung.
Ich habe NLog.Web.AspNetCore v6.0.5 als Abhängigkeit. In program.cs rufe ich UseNLog vom Host auf:

Code: Select all

var builder = WebApplication.CreateBuilder(args);
// NLog: Setup NLog for Dependency injection
builder.Logging.ClearProviders();
builder.Host.UseNLog();
//
In meinem Controller habe ich ILogger als Klassenvariable:

Code: Select all

private readonly ILogger _logger;
und weisen Sie ihm den injizierten ILogger im Konstruktor zu:

Code: Select all

public MyController
(
IConfiguration configuration,
ILogger nlog,
IHttpClientFactory httpClientFactory
)
{
_configuration = configuration;
_logger = nlog;
_httpClientFactory = httpClientFactory;
}
Im Logger-Aufruf verwende ich das @-Präfix. (Der Controller verwendet einen HttpClient-Dienst und gibt jeden Fehler zurück.)

Code: Select all

//
if (!result.IsSuccessStatusCode)
{
string respContent = await result.Content.ReadAsStringAsync();
var errorObject = JsonConvert.DeserializeObject(respContent);
//
_logger.LogError("request error: {@errorObject}", errorObject);
//
}
`nlog.config' hat das standardmäßige Layout:

Code: Select all

    

aber der Protokolleintrag gibt nur einen Aufruf von ToString() für das APIError-Objekt aus, anstatt mir die JSON-Darstellung zu geben.

Code: Select all

2025-11-26 13:22:00.5577|0|ERROR|Client.Controllers.MyController|request error: "Client.Models.ErrorResponses.APIError"
Was habe ich übersehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post