ASP.NET web application in Azure - How to log errors?

34,286

Solution 1

On Azure Websites, best way to log would be Application Insights, you can use free version to get insights about crashes/speed/performance.

However, Application Insights is little slower if you enable everything. But if you customize it and enable only error logging, it would push all logs to your azure application insights account and you will be able to monitor/analyze it very nicely.

For more details: https://azure.microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

Instead of automatically configuring Application Insights, I would suggest, take an empty project, setup application insights. Notice all added config files and nuget packages. There is some insight config file, except application key/signature, you can turn off everything.

Only when you want to track an exception manually, you can create TelemetryClient and call TrackException method. You can pass more details if you need.

Solution 2

I am afraid just throwing an exception doesn't work in Azure Web application logging.

ASP.NET applications can use the System.Diagnostics.Trace class to log information to the application diagnostics log. The four methods in example below correspond with the diagnostic log levels:

Trace.TraceError("Message"); // Write an error message   
Trace.TraceWarning("Message"); // Write a warning message
Trace.TraceInformation("Message"); // Write an information message
Trace.WriteLine("Message"); // Write a verbose message

enter image description here

Besides the basic information for logged events, blob storage log additional information such as the instance ID, thread ID, and a more granular timestamp (tick format) in CSV.

enter image description here

A great article here about logging tips and tools.

See also the Reference to the official Azure Web Apps Logging Document.

Share:
34,286

Related videos on Youtube

nest
Author by

nest

Updated on March 02, 2020

Comments

  • nest
    nest about 4 years

    I have a web application deployed to azure but I don't know how to log errors.

    For testing purposes I have this ForceError method:

    public string ForceError()
    {
        throw new Exception("just a test exception");
        return "ok";
    }
    

    Which causes and error like this: enter image description here

    On Azure I enabled all Diagnostic logs like this: enter image description here

    But the error I forced does not appear in selected storage container.

    Do you know what should I do to start logging all the errors from the application?

    • ThomasArdal
      ThomasArdal about 3 years
      I think that so much happened in the logging space since you originally wrote this question. Application Insights is still a possibility. There are a lot of cloud logging platforms with support for Azure out there now like elmah.io, Stackify, and Sentry. Also, anyone with the same question nowadays should take a look at utilizing a logging framework like Serilog or Microsoft.Extensions.Logging.
  • nest
    nest about 8 years
    Hi, this seems to be what I was looking for. Could you elaborate on how to use App Insights for 'error level' logging and/or provide a reference?
  • nest
    nest about 8 years
    Just an addition, if like me you are using mvc framework this tells exactly how to do it. azure.microsoft.com/en-us/documentation/articles/…