Концепция логирования на примере деталей заказа

В этой статье мы разберем концепцию логирования, а также то, как можно встроить лог своего МОДа в общий лог события на примере страницы деталей заказа.



Страница деталей заказа имеет адрес вида "https://jv3.corteos.ru/SimpleReserveDetails/?id=1759322", где id - номер заказа в системе Кортеос.



На данную страницу можно попасть двумя способами: открыть её в браузере по абсолютному адресу (пример приведен выше) или через ajax со страницы деталей командировки (в этом случае детали заказа откроются в полноэкранном всплывающем окне).



Вот как выглядит данная страница:


 
Чтобы добавить логирование процесса открытия деталей заказа, мы берем view controller, который отвечает за его отображение. В данном случае, как видно из адреса, это SimpleReserveDetailsController:


Далее мы размечаем метод Index при помощи атрибута LoggedAction:

Данный атрибут имеет три параметра:

 

  • string title (обязательный параметр) - текст, который будет показан в начале названия контейнера логов на портале;

  • Type objectType (необязательный параметр) - объект, к которому привязан лог (в данном случае - заказ SimpleReserve);

  • string primaryKeyParameterName (необязательный параметр) - указание, из какого параметра метода брать значение первичного ключа для объекта (в данном случае - id).

В результате простановки такого атрибута на лог-портале при открытии страницы деталей заказа появится такая запись:

 

Далее идем по коду через go to definition и размечаем логирование - например, в контроллере бизнес-логики: