Building a WebJob with .net core 7
and Webjob SDK
, found there are too many prints from Azure.Core
and tried to filter it, it work with code but failed with configure, would like to make the logging configurable via configure files/environment variable
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
b.AddFilter("Azure.Core", LogLevel.None); // this work
});
Copied the appsettings below from some web app template and it is not working
"Logging": {
"LogLevel": {
"Default": "None",
"Azure.Core": "None"
}
},
Tried to use AddConfiguration
but not sure am I doing the right thing.
builder.ConfigureLogging((context, b) =>
{
b.AddConfiguration(context.Configuration); // this line
b.AddConsole();
});
class Program
{
static async Task Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorageQueues();
});
builder.ConfigureAppConfiguration((context, configurationBuilder) =>
{
configurationBuilder
.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConfiguration(context.Configuration);
b.AddConsole();
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
}
In your current configuration, the AddConfiguration
method is used to load configuration settings, but it may not directly apply to the logging configuration.
appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Azure.Core": "None"
}
}
}
Program.cs:
class Program
{
static async Task Main()
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorageQueues();
});
builder.ConfigureAppConfiguration((context, configurationBuilder) =>
{
configurationBuilder
.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
});
builder.ConfigureLogging((context, loggingBuilder) =>
{
// Load logging configuration from appsettings.json
var loggingConfiguration = context.Configuration.GetSection("Logging");
loggingBuilder.AddConfiguration(loggingConfiguration);
// Add console logging
loggingBuilder.AddConsole();
});
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
}