/** * Протоколирование запросов * * @param array|null $aVars */ public function OutLog($aVars = null) { if (!$this->bLogEnable) { return; } if (!($sLogFile = Config::Get('module.search.logs.file'))) { $sLogFile = 'search.log'; } if (!$this->oUser) { if ($sUserId = E::ModuleSession()->Get('user_id')) { $this->oUser = E::ModuleUser()->GetUserById($sUserId); } } if (!$this->oUser) { $sUserLogin = '******'; } else { $sUserLogin = $this->oUser->GetLogin(); } $path = R::GetPathWebCurrent(); $uri = $_SERVER['REQUEST_URI']; $sStrLog = 'user=>"' . $sUserLogin . '" ip=>"' . $_SERVER['REMOTE_ADDR'] . '"' . "\n" . str_repeat(' ', 22) . 'path=>' . $path . '"' . "\n" . str_repeat(' ', 22) . 'uri=>' . $uri . '"'; if (is_array($aVars) && sizeof($aVars)) { foreach ($aVars as $key => $val) { $sStrLog .= "\n" . str_repeat(' ', 22) . $key . '=>"' . $val . '"'; } } E::ModuleLogger()->Dump($sLogFile, $sStrLog); }
/** * @param string $sText * @param string $sLogFile * @param string $sLevel * * @return bool */ public static function _log($sText, $sLogFile, $sLevel = null) { if (class_exists('ModuleLogger', false) || class_exists('Loader', false) && Loader::Autoload('ModuleLogger')) { // Если загружен модуль Logger, то логгируем ошибку с его помощью return E::ModuleLogger()->Dump($sLogFile, $sText, $sLevel); } elseif (class_exists('Config', false)) { // Если логгера нет, но есть конфиг, то самостоятельно пишем в файл $sFile = Config::Get('sys.logs.dir') . $sLogFile; if (!$sFile) { // Непонятно, куда писать } else { $sText = '[' . date('Y-m-d H:i:s') . ']' . "\n" . $sText; return F::File_PutContents($sFile, $sText, FILE_APPEND | LOCK_EX); } } return false; }
/** * Функция для перехвата SQL ошибок * * @param string $sMessage Сообщение об ошибке * @param array $aInfo Информация об ошибке */ function ErrorHandler($sMessage, $aInfo) { // * Формируем текст сообщения об ошибке $sMsg = "SQL Error: {$sMessage}\n---\n"; $sMsg .= print_r($aInfo, true); // * Если нужно логировать SQL ошибки то пишем их в лог if (Config::Get('sys.logs.sql_error')) { E::ModuleLogger()->Dump(Config::Get('sys.logs.sql_error_file'), $sMsg, 'ERROR'); } // * Если стоит вывод ошибок то выводим ошибку на экран(браузер) if (error_reporting() && ini_get('display_errors')) { exit($sMsg); } }