Как отправлять журналы API в формате JSON в концентратор событий, настраивая политику концентратора событий в управлении API?

В настоящее время я работаю над управлением API Azure, поскольку я импортировал один API после того, как настроил политику концентратора событий для отправки журналов API в концентратор событий. До сих пор все работает нормально.

Я настроил политику концентратора событий, используя приведенные ниже строки кода.

<log-to-eventhub logger-id="azure12113apimdemo-logger">

@(string.Join(",", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) )

</log-to-eventhub>

Данные доступны в концентраторе событий в формате ниже, но я хочу отправить те же данные в формате JSON в концентратор событий. Благодаря использованию только данных JSON мы можем отправлять эти данные power bi через задание потоковой аналитики.

Примеры данных, доступные в концентраторе событий:

5/5/2017 12:34:36 PM, azureapi12123mdemo.azure-api.net, a81f5391-7532-49b1-8b43-9d8916157qwqw945, 50.71.221.200, CustomerTables_GetCustomerTables

Не могли бы вы рассказать мне, как отправлять журналы API в формате JSON в концентратор событий, настроив политику концентратора событий в управлении API?


person Pradeep    schedule 10.05.2017    source источник


Ответы (1)


В худшем случае вы можете использовать string.Format вместо string.Join для создания JSON вручную.

Но вы тоже можете использовать JObject:

@{
    var json = new JObject(
        new JProperty("DateTime", DateTime.UtcNow),
        new JProperty("ServiceName", context.Deployment.ServiceName),
        new JProperty("RequestId", context.RequestId),
        new JProperty("IP", context.Request.IpAddress),
        new JProperty("Operation", context.Operation.Name)
    );
    return json.ToString();
}
person Mikhail Shilkov    schedule 10.05.2017