Registrar erro de Javascript no Elmah – AngularJs

Os usuários finais não reportarão nenhum erro de javascript. Isso seria difícil para nós lidarmos, caso haja. Neste scanerio precisamos lidar com javascript também no lado do servidor. Com a ajuda de Elmah, podemos cuidar do mesmo

O serviço de API abaixo registra quaisquer erros para o Elmah postando.

public class ErrorLogController : ApiController
{
public HttpResponseMessage PostByLog([FromBody]string exception)
{
try
{
ErrorLog.GetDefault(null).Log(new Error(new Exception(exception)));
return this.Request.CreateResponse(HttpStatusCode.Accepted);
}
catch (Exception e)
{
return this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError,e.Message);
}

}
}

No Módulo Angular, escreva o código para Tratar os erros usando $ ExceptionHandler e poste os erros no Api Service.

var commonModule=angular.module("Common",[]);
commonModule
.factory("$exceptionHandler", function () {
return function (error, cause) {
/* TODO: Check if possible to use $rootScope, $http is have circular dependency */
var exception = error + Error().stack;
return $.ajax({
method
: 'POST',
url
: '/api/ErrorLog',
data
: '=' + exception
});
};
});