Концепция логирования на примере деталей заказа
В этой статье мы разберем концепцию логирования, а также то, как можно встроить лог своего МОДа в общий лог события на примере страницы деталей заказа.
Страница деталей заказа имеет адрес вида "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 и размечаем логирование - например, в контроллере бизнес-логики: