Искам да използвам новия метод за глобално регистриране на грешки. Написах клас, който наследява ExceptionLogger
и заменя метода Log()
. След това го регистрира като заместител.
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;
}
}
Мога да ровя в свойствата на обекта ExceptionLoggerContext
, за да получа почти всичко, от което се нуждая, ОСВЕН за параметрите на действие. Наистина има свойство ActionContext
, но съм го виждал само null и тази wiki страница заявява, че ActionContext
и ControllerContext
почти винаги ще бъдат нулеви.
Освен това не мога да получа потока на съдържанието, защото неговият поток вече е прочетен, преди да стигне до моя регистратор. Така че няма начин да получа публикуван json от съдържанието на заявката.
Може би има начин да получите публикуваните данни от HttpContext.Current
или по някакъв друг начин?