2017-02-20 15 views
-1

Я пытаюсь интегрировать ELMAH в мое приложение, веб-сайт, чей бэкенд вызывает API. Пока это довольно просто, и теперь я пытаюсь использовать возможности своей базы данных. Он вставляет строки в мою базу данных без проблем, однако, когда он проходит через исходный код API, столбец пользователя становится нулевым. Есть ли способ вручную добавлять пользовательские данные каждый раз, когда ELMAH вставляет новую строку?Вручную вставить пользователя в ELMAH

ответ

0

Прежде всего, я не понимаю, почему люди продолжают обсуждать этот вопрос. Настройка пользователя на всех ошибках ELMAH является вполне актуальным вопросом и может быть достигнута с помощью фильтрации ошибок, как объясняется в моем сообщении в блоге: Enrich ELMAH errors using error filtering hook.

Подводя итог, необходимо реализовать метод ErrorLog_Filtering и установить User свойство вручную:

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs args) 
{ 
    var httpContext = args.Context as HttpContext; 
    if (httpContext != null) 
    { 
     var error = new Error(args.Exception, httpContext); 
     error.User = GetUserFromDatabase(); 
     ErrorLog.GetDefault(httpContext).Log(error); 
     args.Dismiss(); 
    } 
}