Как регистрировать ошибки запуска на консоли и просматривать их, если Application Insights еще не настроен в приложении-C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как регистрировать ошибки запуска на консоли и просматривать их, если Application Insights еще не настроен в приложении-

Сообщение Anonymous »


Как регистрировать ошибки запуска на консоли и просматривать их, если Application Insights еще не настроен и экземпляр ILogger недоступен?

Я хочу отслеживать и регистрировать ошибки во время процесса запуска, когда что-то может пойти не так:
  • Код: Выделить всё

    appsettings.json
    файл конфигурации может быть недоступен
  • Возможно, функция не сможет подключиться к экземпляру SQL Server с помощью строки подключения «SqlServer».

    Код: Выделить всё

    GraphServiceClient
    может не получиться токен с помощью DefaultAzureCredential.
  • ...
Каков стандартный способ обнаружения, регистрации и просмотра таких ошибок запуска?
Я не могу зависеть от Application Insights, поскольку он может быть не настроен или настроен неправильно. Кроме того, как мне создать экземпляр ILogger в этом случае (

Код: Выделить всё

Console.WriteLine(...
) не собирается Application Insights)? Таким образом, мне придется полагаться на Console.WriteLine(...) для регистрации ошибок на самых ранних этапах выполнения функции.
В настоящее время использую план потребления Linux , я не вижу способов просмотра вывода консоли. Как его можно отобразить так, как если бы я видел его в AWS CloudWatch?
Версии:
  • Хост среды выполнения функции Azure : 4.x
  • Язык: изолированный от dotnet /.NET 8
Program.cs:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»