Как использовать и средства записи журналов и приложения в рамках функции Azure? - PullRequest
0 голосов
/ 19 ноября 2018

Я хотел бы отправить трассировку и другие события как ILogger, так и сведениям о приложении.

Я знаю, что могу просто сделать это:

    [FunctionName ("OnSomethingHttpTriggered")]
    public static async System.Threading.Tasks.Task RunAsync ([QueueTrigger ("myq", Connection = "StorageAccountConnection")] string payload, ILogger log) {
        var telemetry = new TelemetryClient {
        InstrumentationKey = Environment.GetEnvironmentVariable ("APPINSIGHTS_INSTRUMENTATIONKEY")
        };
        log.LogInformation ($"C# Queue trigger function processed: {payload}");
        telemetry.TrackEvent ($"C# Queue trigger function processed: {payload}");

        var isPayloadValidSchema = SchemaValidator.IsValid (payload);
        if (!isPayloadValidSchema) {
            log.LogError ($"This visit is not valid {payload}");
            telemetry.TrackEvent ($"This visit is not valid {payload}");
            return;
        }
    }

Но, как вы видите, мне нужно будет удваивать свой код каждый раз для ILogger и TelemetryClient.

Как мне избежать этого повторения?

1 Ответ

0 голосов
/ 20 ноября 2018

Нам не нужно telemtryclient для отправки вывода ILogger, эти будут отображаться как трассы в Application Insights по умолчанию, как только мы установим APPINSIGHTS_INSTRUMENTATIONKEY в настройках приложения (локально в значениях локального .setting.json). Мы используем telemtryclient для отправки пользовательских данных телеметрии .

...