Логирование входящих http-запросов в Creatio для .NET Core

Легкий

Возможность настраивать логирование входящих http-запросов на платформе .NET Core доступна в Creatio версии 7.17.3 и выше.

Виды логирования входящих http-запросов, которые позволяет использовать Creatio:

  • Стандартное логирование.
  • Расширенное логирование.

Стандартное логирование входящих http-запросов 

Стандартное логирование позволяет получить информацию о логах входящих http-запросов. Стандартные логи записываются в файл Request.log, который находится в каталоге Logs корневого каталога приложения.

Чтобы настроить стандартное логирование:

  1. Откройте конфигурационный файл appsettings.json, который находится в корневом каталоге приложения.
  2. Перейдите в секцию Standard. Стандартное логирование включено по умолчанию (значение true флага Enabled).
  3. В флаге StatusCodes перечислите http-коды ответа, для которых необходимо выполнять запись логов. Если включить флаг Enabled и оставить незаполненным флаг StatusCodes, то запись логов выполняется для всех входящих http-запросов.
Пример настройки стандартного логирования (файл appsettings.json)
"RequestLogging": {
    "Standard": {
        "Enabled": true,
        "StatusCodes": [ 200, 300, 302 ]
    },
    ...
}

Для анализа логов можно использовать утилиту Log Parser Studio, поскольку формат логов аналогичен формату логов для IIS.

Расширенное логирование входящих http-запросов 

Расширенное логирование позволяет получить детальную информацию о логах входящих http-запросов. Расширенные логи записываются в файл ExtendedRequest.log, который находится в каталоге Logs корневого каталога приложения. При включенном расширенном логировании информация о теле ответа входящего http-запроса записывается автоматически.

Чтобы настроить расширенное логирование:

  1. Откройте конфигурационный файл appsettings.json, который находится в корневом каталоге приложения.
  2. Перейдите в секцию Extended. Расширенное логирование по умолчанию отключено (значение false флага Enabled).
  3. Включите логирование, установив значение true для флага Enabled.
  4. При необходимости получить в логе информацию о теле http-запроса, установите значение true для флага LogRequestBody (по умолчанию — false).
  5. Задайте размер выводимого тела запроса/ответа (первые N байт) для флага MaxBodySizeBytes.

    Важно. Расширенное логирование влияет на производительность при большом количестве запросов или большом значении флага MaxBodySizeBytes.

  6. В флаге StatusCodes перечислите http-коды ответа, для которых необходимо выполнять запись логов. Если включить флаг Enabled и оставить незаполненным флаг StatusCodes, то запись логов выполняется для всех входящих http-запросов.
Пример настройки расширенного логирования (файл appsettings.json)
"RequestLogging": {
    ...,
    "Extended": {
        "Enabled": true,
        "LogRequestBody": false,
        "MaxBodySizeBytes": 500,
        "StatusCodes": [ 400, 401, 403 ]
    }
}

Допускается одновременное использование стандартного и расширенного логирования, которые могут отличаться значением флага StatusCodes. Если для стандартного и расширенного логирования значения флага StatusCodes совпадают, то логи входящих http-запросов дублируются в файлах Request.log и ExtendedRequest.log с разной степенью детализации.