Modern Web Application - Azure App Service ASP.NET Core Logging to Blob Storage

Modern Web Application - Azure App Service ASP.NET Core Logging to Blob Storage

Raymond Tang Raymond Tang 0 2812 2.20 index 1/2/2022

.NET provides very flexible and powerful logging mechanism to write logs into console, files and other destinations. This article show you how to write logs into Azure Blob Storage in your ASP.NET Azure app service application.

Required package

Package Microsoft.Extensions.Logging.AzureAppServices is required to write App services logs into Blob Storage.

You can find more information about this package on NuGet: https://www.nuget.org/packages/Microsoft.Extensions.Logging.AzureAppServices/.

For example, use .NET CLI:

dotnet add package Microsoft.Extensions.Logging.AzureAppServices --version 6.0.1

You can also directly include it in your project file:

<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="6.0.1" />

Register the provider

Now you can register this provider in your applications.

For example, the following code snippet uses web host builder method ConfigureLoggingfunction to add Azure web app diagnostics logging provider (logging.AddAzureWebAppDiagnostics).

using Microsoft.AspNetCore;namespace Kontext.Web.Portals{
    public class Program    {        public static void Main(string[] args)        {
            var host = CreateWebHostBuilder(args).Build();            host.Run();        }
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>            WebHost.CreateDefaultBuilder(args)            .UseStartup<Startup>()            .ConfigureLogging(logging =>            {                logging.ClearProviders();                logging.AddConsole();                logging.AddAzureWebAppDiagnostics();            });    }}

You could also configure the settings of this logging provider like file name template, etc. Refer to the source code of ***AzureBlobLoggerOptions***for more details.

warning You need to Add this logger provider to use Azure App Services Log stream feature for application logs.

Once this logger provider is added, deploy your latest application to Azure.

Enable application logs

Application logging for the Azure app service application must be enabled to log messages. To do that, we can enable it through Azure portal.

  1. Navigate to the your Azure app service application blade.
  2. Go to Monitoring->App service logs.
  3. Enable Application logging (Filesystem) or Application logging (Blob). The main differences is that Filesystem supports streaming logs which can be very useful for live debug of production applications. Filesystem logging will automatically turn off after 12 hours. For this article, we will configure Blob storage for storing logs.
  4. Configure the options as required: 2022010275255-image.png
  5. Save the changes.

View logs

All the logs can be found in the Azure storage container you have configured.

2022010275755-image.png

One thing to notice is that the blob is Append blob which are commonly used for writing logs into storage container. Other blob types are block and page blobs.

The following is one screenshot of Kontext application log:

2022010275943-image.png

The logging level I configured is Warning thus only Warning, Error and Critical messages are logged. If you want to store more logs, change the log level to Informationor Verbose.

References

asp.net-core azure azure-storage

Join the Discussion

View or add your thoughts below

Comments