Azure: как писать и читать настраиваемые сообщения журнала в приложении ASP.NET Core в Azure?

Я хочу добиться следующего:

  1. Иметь настраиваемые операторы журнала в моем приложении веб-службы ASP.NET Core.
  2. Разверните мое приложение в Azure (в моем случае с помощью Pulumi).
  3. Вызовите веб-сервис, чтобы он запустил код регистрации.
  4. Прочтите зарегистрированные сообщения программно или через графический интерфейс на основе браузера Azure.

Я нацелен на .NET 5.0.

В моем коде я делаю что-то вроде этого:

public class MyController : ControllerBase
{
    private readonly ILogger<MyController> _logger;
    public MyController(ILogger<MyController> logger) => _logger = logger;

    public async Task<ActionResult<something>> DoStuff()
    {
        _logger.LogInformation("Hello, World!");
        ...
    }
}

Мой код Pulumi содержит следующее:

    var app = new AppService(
        "kmsApp",
        new AppServiceArgs
        {
            Logs = new AppServiceLogsArgs
            {
                ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Error" },
                DetailedErrorMessagesEnabled = true,
                FailedRequestTracingEnabled = true,
                HttpLogs = new AppServiceLogsHttpLogsArgs
                {
                    FileSystem = new AppServiceLogsHttpLogsFileSystemArgs { RetentionInDays = 1, RetentionInMb = 35 }
                }
            }
        },
        ...);

С учетом вышеизложенного, когда я запускаю свое приложение в режиме отладки в Visual Studio, я могу видеть сообщения журнала на панели вывода. Таким образом, код регистрации определенно запускается. Но когда я развертываю свое приложение в Azure, я не знаю, как получать сообщения журнала, и мне кажется, что графический интерфейс Azure сбивает меня с толку.

Я борюсь с этим:

  1. Какую конфигурацию мне нужно сделать в моем коде - например, Пакеты NuGet или прочее в моих Program и Startup классах?
  2. Какую конфигурацию мне нужно сделать в Azure?
  3. Где в графическом интерфейсе на основе браузера Azure мне перейти, чтобы увидеть эти сообщения журнала?
  4. Как я могу получить эти журналы программно (через Pulumi или необработанный API Azure)?

Я, конечно, искал документацию, но нахожу ее запутанной. Похоже, что в основном это касается диагностики, например времени отклика. Я просто хочу просмотреть свои собственные сообщения журнала из моего кода ...

Сообщения, подобные этому, дают некоторые подсказки, но после прочтения потока мне все еще не понятно, как читать журналы: Ведение журнала трассировки ASP.NET Core в Azure с помощью Application Insights

Наверное, есть хорошая документация и руководства. Пожалуйста, помогите мне их найти.

Заранее спасибо!


person Claus Appel    schedule 19.02.2021    source источник
comment
Вы можете прочитать журналы, щелкнув (например) «Выступления» → «Выбрать вызов» → «Просмотреть всю телеметрию» в правом нижнем углу. Если журналы не появились, убедитесь, что фильтры журнала настроек приложения настроены на отправку желаемого уровня журналов.   -  person RamenTurismo    schedule 19.02.2021
comment
Я не вижу этой кнопки "Просмотреть всю телеметрию". Не могли бы вы еще раз объяснить, в какой последовательности вы нажимаете, чтобы получить эту кнопку?   -  person Claus Appel    schedule 22.02.2021


Ответы (2)


У вас есть несколько вариантов:

  1. Используйте журнал веб-приложений az из PowerShell, чтобы настроить приложение для входа в файлы
  2. Используйте хвост журнала веб-приложений команда из PowerShell для просмотра журналов в реальном времени
  3. Настройте ведение журнала приложения вручную с портала Azure
  4. Включение Application Insights для службы приложений

Для загрузки журналов используйте az webapp log download или подключитесь к каталогу журналов с помощью FTP

person Igor    schedule 19.02.2021
comment
И есть еще одна возможность просматривать журналы в режиме реального времени (нет необходимости вручную использовать команду az webapp log tail). Перейдите на портал Azure - ›Мониторинг (левое меню) -› Поток журнала. - person Igor; 19.02.2021

Думаю, я понял, чего не хватало. Я сделал две вещи.

Первым делом нужно было изменить уровень ошибок в Pulumi с Error на Verbose:

ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Verbose" },

Еще нужно было установить расширение сайта:

  1. Перейдите в службу приложений в Azure.
  2. В левом меню в разделе Мониторинг перейдите в Журналы службы приложений.
  3. Нажмите на баннер с надписью Нажмите здесь, чтобы установить расширения сайта ASP.NET Core, чтобы включить ведение журнала приложений.

После этого я смог просмотреть журналы, запустив az webapp log tail , как предложил Игорь.

Теперь мне просто нужно выяснить, как это сделать программно с помощью Pulumi.

введите описание изображения здесь

person Claus Appel    schedule 26.02.2021