user16841602
user16841602

Reputation:

How to configure Serilog as default log provider in Azure Functions in .NET Core 3.1?

I am trying to register Serilog in my Azure Functions but it is not captured as my log provider.

public override void Configure(IFunctionsHostBuilder builder)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();

    var instrumentationKey = config.GetValue<string>("APPINSIGHTS_INSTRUMENTATIONKEY");

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
        .Enrich.WithProperty("Application", "Reachr.Function")
        .Enrich.FromLogContext()
        .Enrich.WithExceptionDetails()
        .WriteTo.Console()
        .WriteTo.ApplicationInsights(instrumentationKey, TelemetryConverter.Traces, LogEventLevel.Information)
        .CreateLogger();

    builder.Services.AddApplicationInsightsTelemetry(instrumentationKey);

    builder.Services.AddSingleton<IConfiguration>(config);
}

What do I need to do to register Serilog as my Azure Functions log provider?

Upvotes: 0

Views: 751

Answers (1)

Henrique Mauri
Henrique Mauri

Reputation: 788

Just use:

// From Serilog.Extensions.Logging
builder.Services.AddLogging(lb => lb.AddSerilog(Log.Logger, dispose: true)); 

Upvotes: 3

Related Questions