Отсутствие документации на некоторые полезные классы немного удивляет. Учитывая, что этот класс упоминается даже на сертифицированных курсах junior, которые я сейчас прохожу - это вообще странно.
Сегодня я роюсь в реализации класса CEventLog.
Собственно говоря, если залезть в код, то мы увидим, что класс небольшой и содержит всего 4 функции, одна из которых - алиас.
SEVERITY - на данный момент там только один парамент SECURITY, во всех остальных случаях туда проставляется UNKNOWN
AUDIT_TYPE_ID - айди нашего типа, который мы будем добавлять, например EVENT_ACTIONS_ENDED; если оставить строку пустой, то проставится UNKNOWN. можете прописывать сюда практически чего хотите
MODULE_ID - модуль, из которого происходит запись; при пустом значении также проставится UNKNOWN
ITEM_ID - айдишка объекта, в связи с которым добавляется событие; иначе ставится UNKNOWN
SITE_ID - айдишка сайта
DESCRIPTION - описание записи, техническая информация
также функция записывает следующую информацию:
REMOTE_ADDR, USER_AGENT, REQUEST_URI - соответствующая инфа из $_SERVER
USER_ID - из переменной $USER
GUEST_ID - информация из сессии
Например, добавим в журнал событий сообщение о том, что закончилось действие акции с айди 123.
С этой функцией я имела дело, работает и вполне выполняет чего от неё хотят.Сегодня я роюсь в реализации класса CEventLog.
Собственно говоря, если залезть в код, то мы увидим, что класс небольшой и содержит всего 4 функции, одна из которых - алиас.
Add($arFields)
Функция принимает на вход массив $arFields с параметрами .SEVERITY - на данный момент там только один парамент SECURITY, во всех остальных случаях туда проставляется UNKNOWN
AUDIT_TYPE_ID - айди нашего типа, который мы будем добавлять, например EVENT_ACTIONS_ENDED; если оставить строку пустой, то проставится UNKNOWN. можете прописывать сюда практически чего хотите
MODULE_ID - модуль, из которого происходит запись; при пустом значении также проставится UNKNOWN
ITEM_ID - айдишка объекта, в связи с которым добавляется событие; иначе ставится UNKNOWN
SITE_ID - айдишка сайта
DESCRIPTION - описание записи, техническая информация
также функция записывает следующую информацию:
REMOTE_ADDR, USER_AGENT, REQUEST_URI - соответствующая инфа из $_SERVER
USER_ID - из переменной $USER
GUEST_ID - информация из сессии
Например, добавим в журнал событий сообщение о том, что закончилось действие акции с айди 123.
CEventLog::Add(array( "SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "EVENT_ACTIONS_ENDED", "MODULE_ID" => "main", "ITEM_ID" => 123, "DESCRIPTION" => "Закончилось действие акции", ));
Log($SEVERITY, $AUDIT_TYPE_ID, $MODULE_ID, $ITEM_ID, $DESCRIPTION = false, $SITE_ID = false)
Функция принимаем на вход параметры, с которыми она вызовет функцию Add. Больше она ничего не делает =)CleanUpAgent()
Это функция агента, которая вызывает очищение базы от протухших записей (да, у записей есть время жизни). Если залезем в список агентов, то увидим, что CleanUpAgent выполняется раз в сутки.
GetList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arNavParams = false)
Как же без неё, родимой.Сортировать можно по полям ID и TIMESTAMP_X
Фильтровать можно по полям, которые описаны в функции Add.
Навигационные параметры, говоря языком документации, - это массив ключей, принимаемых методом CDBResult::NavQuery (также не задокументированным) в качестве третьего параметра.
Навскидку от этой функции ничего не добилась, больше времени не было, а надо бы с ней поковыряться =)
Немного полезностей и примеров использования мы можем найти
у Долганина вот тут: Добавляем свой элемент в журнал событий
у Шаромова вот тут: Уведомления об изменениях элементов инфоблоков
куда идет запись?
ОтветитьУдалитьв бд или в файл?
в бд конечно ) в Журнал событий )
Удалить