Beispiel #1
0
 /**
  * Протоколирование запросов
  *
  * @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);
 }
Beispiel #2
0
 /**
  * @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);
     }
 }