Где я могу найти свои журналы в службах приложений Azure? - PullRequest
2 голосов
/ 30 июня 2019

Я включил ведение журнала в своем веб-приложении, работающем на веб-службах Azure. Я могу видеть выходные данные журнала, если включаю потоковую передачу журналов, но не могу найти графический интерфейс, где я могу найти журналы, и где они находятся?

Я определил мою регистрацию следующим образом в program.cs

WebHost.CreateDefaultBuilder(args)
                .UseApplicationInsights()
                .ConfigureLogging((hostingContext, logging) =>
                {
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddConsole();
                logging.AddDebug();
                logging.AddEventSourceLogger();
                logging.AddApplicationInsights();
                })
                .UseStartup<Startup>();

И в моем контроллере API я просто делаю это

 private readonly ILogger _logger;
        public ReveController(ILogger<Controller> logger)
        {
            _logger = logger;
        }

Затем следует

_logger.LogInformation("Test test test");

Мои параметры ведения журнала в appsettings.json выглядят следующим образом

"Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },

Я посмотрел на службу приложений и в App Insights, но нигде в графическом интерфейсе я не могу найти записи, где они находятся?

Я что-то упустил?

Ответы [ 2 ]

2 голосов
/ 30 июня 2019

Журнал, написанный с использованием интерфейса Ilogger, в конечном итоге попадает в список трассировок в приложении. Вы можете просмотреть их, используя Поиск в Application Insights или используя Log Analytics .

Уровень журнала по умолчанию для App Insights установлен на Warning, как и уровень журнала для других описаний в вашем appsettings.json. Вы можете изменить его так, чтобы он соответствовал вашему коду, чтобы регистрировалась вся информация о серьезности или выше:

в коде с использованием AddFilter ( Источник ):

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
  .ConfigureLogging(
        builder =>
        {
            // Providing an instrumentation key here is required if you're using
            // standalone package Microsoft.Extensions.Logging.ApplicationInsights
            // or if you want to capture logs from early in the application startup
            // pipeline from Startup.cs or Program.cs itself.
            builder.AddApplicationInsights();

            // Optional: Apply filters to control what logs are sent to Application Insights.
            // The following configures LogLevel Information or above to be sent to
            // Application Insights for all categories.
            builder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>
                             ("", LogLevel.Information);
        }
    );

или в файле конфигурации, установив LogLevel в разделе ApplicationInsights раздела «Ведение журнала» ( Источник ):

{
  "Logging": {
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information",
      }
    },
    "LogLevel": {
      "Default": "Information"
    }
  },
}

Кстати , учтите это:

Шаблон проекта по умолчанию вызывает CreateDefaultBuilder, в который добавляются следующие поставщики журналов:

  • Консоль
  • Debug
  • EventSource (начиная с ASP.NET Core 2.2)

так что вам не нужно делать это в коде, как сейчас. Также будет прочитана конфигурация. ( Источник )

Дополнительная информация
См. эту проблему , где обсуждается уровень логики по умолчанию Warning и почему его нельзя перезаписать в конфигурации без раздела ApplicationInsights в appsettings.json.

Подробнее об уровнях лога здесь

Подробнее о фильтрах (включая фильтры для уровней журналов) здесь

1 голос
/ 30 июня 2019

Уровень ведения журнала по умолчанию установлен на Warning, но ведется запись на уровне Information. Это не позволит Application Insights получить выходные данные журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...