Вход в функции Azure - PullRequest
       30

Вход в функции Azure

0 голосов
/ 16 сентября 2018

Я использовал TraceWriter класс для записи журналов в моей функции лазури.Когда функция была маленькой, это было довольно хорошо, я мог видеть журналы в функции Monitor section и ApplicationInsight .

Теперь я создаю приложение и хочуиспользовать общую регистрацию в приложении (Web, Jobs & functions) с DI.

Я видел Интерфейс ILogger , его легко заменить на TraceWriter, но для моего другого приложения (Web и Jobs) я хочу решить эту проблему, используя свой собственный DI, но яЯ не могу найти реализованный класс.

Serilog.TraceWriter выглядит хорошо, но я не хочу использовать traceWriter где-либо в параметрах моего метода.

Любая идея, как решить ILogger или пользовательскую реализацию?Это будет работать во всех приложениях, я хочу отправлять свои журналы в ApplicationInsights и также хочу отслеживать с помощью раздела монитора функций

На данный момент я использую приведенный ниже пользовательский код

public class Log : ILog
{
private static TelemetryClient telemetryClient = new TelemetryClient() { InstrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] };

public void Error(string message, Exception ex = null)
{
    telemetryClient.TrackTrace(message, SeverityLevel.Error);
    if (ex != null)
        telemetryClient.TrackException(ex);
}

public void Info(string message)
{
    telemetryClient.TrackTrace(message, SeverityLevel.Information);
}

public void Verbose(string message)
{
    telemetryClient.TrackTrace(message, SeverityLevel.Verbose);
}

public void Warning(string message)
{
    telemetryClient.TrackTrace(message, SeverityLevel.Warning);
}

public TelemetryClient TelemetryClient
{
    get
    {
        return telemetryClient;
    }
}

}

1 Ответ

0 голосов
/ 02 декабря 2018

Я искал способ включить службы входа в систему и обнаружил, что нельзя использовать ILogger и ILogger<T> в обеих версиях, так как ILogger<T> не будет отображаться в журналах функций.

Именно поэтому я создал решение с внедрением зависимостей, которое использует ILogger для функций и вводит ILogger<T> для ссылочных сервисов.

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

Обращаем ваше внимание, что в данный момент ведется работа. Я еще не тестировал Azure.

...