Веб-приложение ASP.NET в Azure - как регистрировать ошибки?

У меня есть веб-приложение, развернутое в Azure, но я не знаю, как регистрировать ошибки.

Для целей тестирования у меня есть этот метод ForceError:

public string ForceError()
{
    throw new Exception("just a test exception");
    return "ok";
}

Причины и такие ошибки:  введите описание изображения здесь

В Azure я включил все журналы диагностики следующим образом:  введите описание изображения здесь

Но вызванная мной ошибка не появляется в выбранном контейнере для хранения.

Вы знаете, что мне делать, чтобы начать регистрацию всех ошибок из приложения?


person nest    schedule 29.02.2016    source источник
comment
Я думаю, что так много всего произошло в области журналов с тех пор, как вы изначально написали этот вопрос. Application Insights все еще возможен. Сейчас существует множество платформ облачных журналов с поддержкой Azure, например elmah.io , Stackify и Часовой. Кроме того, всем, кто задает такой же вопрос в настоящее время, следует обратить внимание на использование инфраструктуры ведения журнала, такой как Serilog или Microsoft.Extensions.Logging.   -  person ThomasArdal    schedule 05.03.2021


Ответы (2)


На веб-сайтах Azure лучше всего вести журнал с помощью Application Insights, вы можете использовать бесплатную версию, чтобы получить представление о сбоях / скорости / производительности.

Однако Application Insights будет работать немного медленнее, если вы включите все. Но если вы настроите его и включите только регистрацию ошибок, он отправит все журналы в вашу учетную запись Azure Application Insights, и вы сможете очень хорошо отслеживать / анализировать ее.

Для получения дополнительных сведений: https://azure.microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

Вместо автоматической настройки Application Insights я бы предложил взять пустой проект и настроить Application Insights. Обратите внимание на все добавленные файлы конфигурации и пакеты nuget. Есть какой-то конфигурационный файл инсайта, кроме ключа / подписи приложения, можно все отключить.

Только когда вы хотите отслеживать исключение вручную, вы можете создать TelemetryClient и вызвать метод TrackException. При необходимости вы можете передать более подробную информацию.

person Akash Kava    schedule 01.03.2016
comment
Привет, похоже, это то, что я искал. Не могли бы вы подробнее рассказать, как использовать App Insights для ведения журнала «уровня ошибок» и / или предоставить ссылку? - person nest; 01.03.2016
comment
Просто дополнение, если вы, как и я, используете фреймворк mvc, это точно расскажет, как это сделать. azure.microsoft.com/en -us / documentation / articles / - person nest; 04.03.2016

Боюсь, что простая генерация исключения не работает при ведении журнала веб-приложения Azure.

Приложения ASP.NET могут использовать класс System.Diagnostics.Trace для записи информации в журнал диагностики приложения. Четыре метода в примере ниже соответствуют уровням журнала диагностики:

Trace.TraceError("Message"); // Write an error message   
Trace.TraceWarning("Message"); // Write a warning message
Trace.TraceInformation("Message"); // Write an information message
Trace.WriteLine("Message"); // Write a verbose message

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

Помимо основной информации для регистрируемых событий, хранилище BLOB-объектов регистрирует дополнительную информацию, такую ​​как идентификатор экземпляра, идентификатор потока и более детализированную метку времени (формат тика) в CSV.

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

Отличная статья здесь о советах и ​​инструментах для ведения журнала .

См. Также ссылку на официальные веб-приложения Azure. Документ регистрации.

person Derek    schedule 01.03.2016