Хотя вы можете записывать данные журналов в Azure Хранилище (как BLOB-объектов, так и таблиц), на самом деле было бы более разумно, если вы используете Azure Application Insights
для регистрации этих данных.
Я недавно сделал то же самое для консольного приложения, которое я создал. Я нашел это невероятно простым.
Я создал ресурс App Insight в своей подписке Azure и получил instrumentation key
. Затем я установил App Insights SDK
и сослался на соответствующие пространства имен в моем проекте.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
Вот как я инициализировал клиента телеметрии:
var appSettingsReader = new AppSettingsReader();
var appInsightsInstrumentationKey = (string)appSettingsReader.GetValue("AppInsights.InstrumentationKey", typeof(string));
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
configuration.InstrumentationKey = appInsightsInstrumentationKey;
telemetryClient = new TelemetryClient(configuration);
telemetryClient.InstrumentationKey = appInsightsInstrumentationKey;
Для трассировки журнала данные, я просто сделал следующее:
TraceTelemetry telemetry = new TraceTelemetry(message, SeverityLevel.Verbose);
telemetryClient.TrackTrace(telemetry);
Для регистрации данных об ошибках я просто сделал следующее:
catch (Exception excep)
{
var message = string.Format("Error. {0}", excep.Message);
ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(excep);
telemetryClient.TrackException(exceptionTelemetry);
telemetryClient.Flush();
Task.Delay(5000).Wait();//Wait for 5 seconds before terminating the application
}
Просто учтите одну вещь: убедитесь, что Вы ждете некоторое время (достаточно 5 секунд), чтобы передать sh данные, прежде чем завершать работу приложения.
Если вы по-прежнему заинтересованы в записи журналов в Azure Storage В зависимости от используемой библиотеки журналов вы найдете подходящие адаптеры, которые будут записываться непосредственно в Azure Storage.
Например, есть цель NLog для Azure Таблицы: https://github.com/harouny/NLog.Extensions.AzureTableStorage (хотя этот проект активно не поддерживается).