Last Updated: September 09, 2019
·
3.081K
· kjana83

Log Javascript Error in Elmah - AngularJs

End users will not report any javascript error. That would be tough for us to handle in case any. In this scanerio we need to handle javascript also in Server side. Through the help of Elmah we can handle the same

Below API Service logs the any errors to the Elmah by posting.

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);
            }

        }
    }

In Angular Module write the code for Handle the errors using $ExceptionHandler and post the errors to 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
        });
    };
});

1 Response
Add your response

You can use $injector to retrieve http service.
var http = $injector.get('$http');

over 1 year ago ·