Verweisen auf Aktionsparameter aus ExceptionLogger

Ich möchte die neue Methode zum globalen Protokollieren von Fehlern verwenden. Ich habe eine Klasse geschrieben, die erbtExceptionLogger und überschreibt dieLog() Methode. Dann registriert es als Ersatz.

public class TraceExceptionLogger : ExceptionLogger
{
    public async override void Log(ExceptionLoggerContext context)
    {
        //  This is always empty string
        var content = await context.Request.Content.ReadAsStringAsync();

        //  This is almost always null
        var actionContext = context.ExceptionContext.ActionContext;
    }
}

Ich kann durch die GrabenExceptionLoggerContext Objekt Eigenschaften, um so ziemlich alles zu bekommen, was ich brauche, außer für Aktionsparameter. Es gibt in der Tat eineActionContext Eigentum, aber ich habe es nur null und gesehenDiese Wiki-Seite besagt, dassActionContext undControllerContext wird fast immer null sein.

Außerdem kann ich den Content-Stream nicht abrufen, da sein Stream bereits gelesen wurde, bevor er in meinen Logger gelangt. Ich kann also keinen Json aus dem Inhalt der Anfrage abrufen.

Gibt es vielleicht einen Weg, um die geposteten Daten von zu bekommenHttpContext.Current oder auf andere Weise?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage