NuGet npm Samples

Logging to from Angular works great with Angular applications too. To log all errors happening in your Angular app, install through npm as described in Logging from JavaScript.

In the same folder as the app.module.ts file add a new file named elmah-io-error-handler.ts and include the following content:

import {ErrorHandler} from '@angular/core';

import * as Elmahio from '';

export class ElmahIoErrorHandler implements ErrorHandler {
  logger: Elmahio;
  constructor() {
    this.logger = new Elmahio({
      apiKey: 'API_KEY',
      logId: 'LOG_ID'
  handleError(error) {
    if (error && error.message) {
      this.logger.error(error.message, error);
    } else {
      this.logger.error('Error in application', error);

Reference both ErrorHandler and ElmahIoErrorHandler in the app.module.ts file:

import { BrowserModule } from '@angular/platform-browser';
import {ErrorHandler, NgModule} from '@angular/core'; // ⬅️ Add ErrorHandler

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

import {ElmahIoErrorHandler} from './elmah-io-error-handler'; // ⬅️ Reference ElmahIoErrorHandler

  declarations: [
  imports: [
  // ⬇️ Reference both handlers
  providers: [{ provide: ErrorHandler, useClass: ElmahIoErrorHandler }],
  bootstrap: [AppComponent]
export class AppModule { }

All errors are shipped to the handleError-function by Angular and logged to Check out the Elmah.Io.JavaScript.AngularAspNetCore and Elmah.Io.JavaScript.AngularWebpack samples for some real working code.

AngularJS/Angular 1

For AngularJS you need to implement the $exceptionHandler instead:

(function () {
  'use strict';
  angular.module('app').factory('$exceptionHandler', ['$log', function controller($log) {
    var logger = new Elmahio({
      apiKey: 'API_KEY',
      logId: 'LOG_ID'
    return function elmahExceptionHandler(exception, cause) {
      $log.error(exception, cause);
      logger.error(exception.message, exception);

This article was brought to you by the team. is the best error management system for .NET web applications. We monitor your website, alert you when errors start happening, and help you fix errors fast.

See how we can help you monitor your website for crashes Monitor your website