Reputation:
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
Reputation: 788
Just use:
// From Serilog.Extensions.Logging
builder.Services.AddLogging(lb => lb.AddSerilog(Log.Logger, dispose: true));
Upvotes: 3