Using ELMAH in ASP.NET Core

March 20, 2016 by Anuraj

ASP.NET ELMAH ELM ASP.NET Core Logging

ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment. ELMAH does not work with ASP.NET 5 because ELMAH (given its name) is based on ASP.NET 4.x’s Modules and Handlers (the ‘MAH’ of ‘ELMAH’). There is a prototype in ASP.NET 5 called ‘ELM’ (Error Logging Middleware) that has some features similar to ELMAH. This post is about using ELM in ASP.NET 5.

This post is about configuring ELMAH in ASP.NET Core.

  • First you need to update project.json file and add reference of ELM.
{
    "dependencies": {
        "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
        "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
        "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
        "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
        "Microsoft.AspNet.Diagnostics.Elm": "1.0.0-rc1-final"
    },
    "commands": {
        "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5004"
    },
    "frameworks": {
         "dnx451": { },
         "dnxcore50": { }
    }
}
  • Next you need to configure the Startup file ConfigureServices and Configure methods to support ELM.
public void ConfigureServices(IServiceCollection services)
{
    services.AddElm();
    services.ConfigureElm(options => {
        options.Path = new PathString("/elm");
        options.Filter = (name, level) => level >= LogLevel.Verbose;
    });
    
    services.AddMvc();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    app.Map("/HelloMVC6", map => 
    {
        app.UseElmPage();
        app.UseElmCapture();
        app.UseIISPlatformHandler();
        app.UseDeveloperExceptionPage();
        app.UseMvcWithDefaultRoute();
    });
}

Now if you browse http://localhost:5004/elm, you can see the logging information. Due to line break characters in style, the CSS is not working properly.

ASP.NET Core ELM Log

Happy Coding

Support My Work

If you find my content helpful, consider supporting my work. Your support helps me continue creating valuable resources for the community.

Share this article

Found this useful? Share it with your network!

Copyright © 2025 Anuraj. Blog content licensed under the Creative Commons CC BY 2.5 | Unless otherwise stated or granted, code samples licensed under the MIT license. This is a personal blog. The opinions expressed here represent my own and not those of my employer. Powered by Jekyll. Hosted with ❤ by GitHub