Search code examples
asp.netvb.netweb-applicationselmaherror-logging

Include "Application Name" in Exception Logging


I'm working out an implementation of ELMAH in a web application that logs exceptions to a SQL Server. That's inconsequential, however. My goal is to include the application name in the log so I can easily identify the offending application at a glance when checking error reports. I've searched far and wide spending hours trying to find a solution. I've included Application Name=[myApp] in my SQL Server connection string, but that only helps me to identify the app during a SQL Server trace and not in my actual error logging.

Has anyone done this? Here is an example of a log record in my database. I would like to see the Application Name listed as well. This happens to be the ELMAH implementation of the table, but it could just as well have been a custom table with the same field.

enter image description here

I would think this should be as simple as adding a value to the web.config or something, but I can't seem to find any solution like that or any other. I should probably also note that I'm using IIS 7.5 and .NET 4.0 in case that has anything to do with it. :)


Solution

  • As it is my practice to always fill out the assembly info for all my applications, I have elected to populate this field from My.Application.Info.Title which I just figured out how to access programmatically. To set this field in ELMAH, I set the ApplicationName value of my SqlErrorLog object like so:

    Dim se As New Elmah.SqlErrorLog(ConnectionStrings("Elmah").ConnectionString)
    se.ApplicationName = My.Application.Info.Title
    

    The assembly info can be set by opening the project properties -> Application tab -> click Assembly Information... -> set "Title" value.

    Now when you call the Log function for this object, it will create a database entry including the Application Name.