Как регистрировать ошибки запуска на консоли и просматривать их, если Application Insights еще не настроен и экземпляр ILogger недоступен?
Я хочу отслеживать и регистрировать ошибки во время процесса запуска, когда что-то может пойти не так:
- файл конфигурации может быть недоступен
Код: Выделить всё
appsettings.json
- Возможно, функция не сможет подключиться к экземпляру SQL Server с помощью строки подключения «SqlServer».
может не получиться токен с помощью DefaultAzureCredential.
Код: Выделить всё
GraphServiceClient
- ...
Я не могу зависеть от Application Insights, поскольку он может быть не настроен или настроен неправильно. Кроме того, как мне создать экземпляр ILogger в этом случае (
Код: Выделить всё
Console.WriteLine(...
В настоящее время использую план потребления Linux , я не вижу способов просмотра вывода консоли. Как его можно отобразить так, как если бы я видел его в AWS CloudWatch?
Версии:
- Хост среды выполнения функции Azure : 4.x
- Язык: изолированный от dotnet /.NET 8
Код: Выделить всё
using System.Configuration;
using System.Reflection;
using Azure.Identity;
using Microsoft.Azure.Functions.Worker;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Graph;
var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureAppConfiguration(builder =>
{
var environment = Environment.GetEnvironmentVariable("ENVIRONMENT") ?? "development";
Console.WriteLine($"Environment: {environment}");
builder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
})
.ConfigureServices((context, services) =>
{
services.AddApplicationInsightsTelemetryWorkerService();
services.ConfigureFunctionsApplicationInsights();
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
services.AddDbContext(options =>
{
var connectionString = context.Configuration.GetConnectionString("SqlServer") ?? throw new ConfigurationErrorsException("Connection string not found");
options.UseSqlServer(connectionString);
});
services.AddScoped();
services.AddScoped();
services.AddTransient();
services.AddSingleton(sp =>
new GraphServiceClient(
new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
ExcludeSharedTokenCacheCredential = true
})
)
);
})
.Build();
host.Run();

Подробнее здесь: https://stackoverflow.com/questions/789 ... on-insight