Метод добавляет событие для записи в журнал событий. Статический метод:
int
CEventLog::Add(
array fields
)
Параметр | Описание |
---|---|
fields | Поля добавляемого события. Значения:
|
С версии 15.5.9 переданные в метод ключи массива: REMOTE_ADDR, USER_AGENT, REQUEST_URI, USER_ID, GUEST_ID будут переопределены, поэтому передавать их не имеет смысла.
Примеры использования
<?
CEventLog::Add(array(
"SEVERITY" => "SECURITY",
"AUDIT_TYPE_ID" => "MY_OWN_TYPE",
"MODULE_ID" => "main",
"ITEM_ID" => 123,
"DESCRIPTION" => "Какое-то описание",
));
?>
Логика отработки метода:
<?
<?php // /bitrix/modules/main/classes/general/event_log.phpCEventLog::Add() // 31: public static function Add($arFields) { global $USER, $DB; static $arSeverity = array( "SECURITY" => self::SEVERITY_SECURITY,
"ERROR" => self::SEVERITY_ERROR,
"WARNING" => self::SEVERITY_WARNING,
"INFO" => self::SEVERITY_INFO,
"DEBUG" => self::SEVERITY_DEBUG,
);
$url = preg_replace("/(&?sessid=[0-9a-z]+)/", "", $_SERVER["REQUEST_URI"]);
$SITE_ID = defined("ADMIN_SECTION") && ADMIN_SECTION==true ? false : SITE_ID;
$arFields = array(
"SEVERITY" => array_key_exists($arFields["SEVERITY"], $arSeverity)? $arFields["SEVERITY"]: "UNKNOWN",
"AUDIT_TYPE_ID" => strlen($arFields["AUDIT_TYPE_ID"]) <= 0? "UNKNOWN": $arFields["AUDIT_TYPE_ID"], "MODULE_ID" => strlen($arFields["MODULE_ID"]) <= 0? "UNKNOWN": $arFields["MODULE_ID"], "ITEM_ID" => strlen($arFields["ITEM_ID"]) <= 0? "UNKNOWN": $arFields["ITEM_ID"], "REMOTE_ADDR" => $_SERVER["REMOTE_ADDR"],
"USER_AGENT" => $_SERVER["HTTP_USER_AGENT"],
"REQUEST_URI" => $url,
"SITE_ID" => strlen($arFields["SITE_ID"]) <= 0 ? $SITE_ID : $arFields["SITE_ID"], "USER_ID" => is_object($USER) && ($USER->GetID() > 0)? $USER->GetID(): false,
"GUEST_ID" => (isset($_SESSION) && array_key_exists("SESS_GUEST_ID", $_SESSION) && $_SESSION["SESS_GUEST_ID"] > 0? $_SESSION["SESS_GUEST_ID"]: false),
"DESCRIPTION" => $arFields["DESCRIPTION"],
"~TIMESTAMP_X" => $DB->GetNowFunction(),
);
return $DB->Add("b_event_log", $arFields, array("DESCRIPTION"), "", false, "", array("ignore_dml"=>true));
}
?>