Section 3 of 6

Built-in Providers

🎯 What You'll Learn

  • What are logging providers
  • Console provider
  • Debug provider
  • EventSource provider
  • EventLog provider (Windows)
  • Configuring providers

What are Logging Providers?

Logging providers determine where logs are written (console, file, database, etc.). ASP.NET Core includes several built-in providers.

Built-in Providers

1. Console Provider

Writes logs to the console.

Add Console Logging C#
builder.Logging.AddConsole();

2. Debug Provider

Writes logs to the debug output window.

Add Debug Logging C#
builder.Logging.AddDebug();

3. EventSource Provider

Writes logs using EventSource for ETW (Event Tracing for Windows).

Add EventSource Logging C#
builder.Logging.AddEventSourceLogger();

4. EventLog Provider (Windows)

Writes logs to Windows Event Log.

Install Package Bash
dotnet add package Microsoft.Extensions.Logging.EventLog
Add EventLog Logging C#
builder.Logging.AddEventLog();

Default Configuration

ASP.NET Core templates include Console and Debug providers by default.

Program.cs (Default) C#
var builder = WebApplication.CreateBuilder(args);
// Console and Debug providers are added by default

Clearing and Adding Providers

Clear and Add Custom Providers C#
builder.Logging.ClearProviders(); // Remove all default providers
builder.Logging.AddConsole();
builder.Logging.AddDebug();

Provider-Specific Configuration

appsettings.json JSON
{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    },
    "Console": {
      "LogLevel": {
        "Default": "Debug"
      }
    },
    "Debug": {
      "LogLevel": {
        "Default": "Trace"
      }
    }
  }
}

Key Takeaways

  • Providers: Determine where logs are written
  • Console: Writes to console (default)
  • Debug: Writes to debug output (default)
  • EventSource: ETW tracing
  • EventLog: Windows Event Log
  • ClearProviders(): Remove default providers
  • Configure: Per-provider log levels in appsettings.json