2017-10-26 1 views
0

Wir haben ASP.NET Core-Anwendung, die wir als eine REST API verwenden. Methoden verwenden [FromBody]MyClass param als Eingabe. Problem: Wenn der Client eine ungültige JSON-Zeichenfolge sendet, wird der Wert input aufgrund von JSON-Serialisierungsfehlern ungültig. Gibt es eine Möglichkeit, solche Fehler zu protokollieren?Wie protokolliert man ASP.NET Core Eingabe JSON Serialisierungsfehler

Edit: Ich suche nach anwendungsweite Lösung nicht pro-Methode ..

+1

Mögliche Duplikat von [ ASP.Net 5 MVC 6 - Wie wird eine ungültige JSON-Nachricht auf POST mit FromBody zurückgegeben?] (Https://stackoverflow.com/questions/37277427/asp-net-5-mvc-6-how-to-return-invalid- json-message-on-post-using-frombody) –

+0

@Kirk: Das ist nicht die gleiche Frage. In der verknüpften Frage wird gefragt, wie json-Fehler an den Aufrufer zurückgegeben werden und die akzeptierte Antwort ist eine pro-Methode-basierte Lösung. Ich versuche, sie anwendungsweit zu erfassen und zu protokollieren. – dstr

+1

Haben Sie die zweite, nicht akzeptierte Antwort gelesen, die beschreibt, wie Sie einen Filter verwenden, um genau das zu tun, wonach Sie fragen? –

Antwort

0

ich dies in Startup.cs mit Hinzufügen eines Fehlerhandler gelöst haben:

services.AddMvc() 
     .AddJsonOptions(options => { 
       options.SerializerSettings.Error = (object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args) => 
       { 
        //Log args.ErrorContext.Error details... 
       }; 
     }); 
+0

Ja, ich stimme zu, aber wie protokollieren Sie es, wenn Sie LoggerFactoryManager.Init (_); in derselben ConfigureServices-Methode? –

+0

var logger = LoggerFactoryManager.GetLogger (); logger.LogWarning ("Fehler beim Deserialisieren von JSON bei Eingabe:" + args.ErrorContext.Error.Message); –

Verwandte Themen