Advertisement
zero50x

Логирование в файл

Oct 7th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.30 KB | None | 0 0
  1. function myErrorHandler($errno, $errstr, $errfile, $errline)
  2. {
  3.     if (!(error_reporting() & $errno)) {
  4.         // Этот код ошибки не включен в error_reporting
  5.         return;
  6.     }
  7.     $dtime = $today = date("Y-m-d H:i:s");
  8.     $filename = __DIR__.'/errlog_BBssdfsdfsfd.txt'; // Путь к логу в корне сайта
  9.  
  10.     switch ($errno) {
  11.         case E_USER_ERROR:
  12.             // errno номер, errstr описание errline строка errfile файл
  13.             $ERRlog_BB = "$dtime [$errno] $errstr line: $errline file: $errfile\n";
  14.                 if (is_writable($filename)) {
  15.                     if (!$handle = fopen($filename, 'a')) { exit; }
  16.                     if (fwrite($handle, $ERRlog_BB) === FALSE) { exit; }
  17.                     fclose($handle);
  18.                 }
  19.             exit(1); // Надо ли завершать работу скрипта
  20.             break;
  21.    
  22.         case E_USER_WARNING:
  23.             $ERRlog_BB = "$dtime [$errno] $errstr line: $errline file: $errfile\n";
  24.                 if (is_writable($filename)) {
  25.                     if (!$handle = fopen($filename, 'a')) { exit; }
  26.                     if (fwrite($handle, $ERRlog_BB) === FALSE) { exit; }
  27.                     fclose($handle);
  28.                 }
  29.             break;
  30.    
  31.         case E_USER_NOTICE:
  32.             $ERRlog_BB = "$dtime [$errno] $errstr line: $errline file: $errfile\n";
  33.                 if (is_writable($filename)) {
  34.                     if (!$handle = fopen($filename, 'a')) { exit; }
  35.                     if (fwrite($handle, $ERRlog_BB) === FALSE) { exit; }
  36.                     fclose($handle);
  37.                 }
  38.             break;
  39.    
  40.         default:
  41.             $ERRlog_BB = "$dtime [$errno] $errstr line: $errline file: $errfile\n";
  42.                 if (is_writable($filename)) {
  43.                     if (!$handle = fopen($filename, 'a')) { exit; }
  44.                     if (fwrite($handle, $ERRlog_BB) === FALSE) { exit; }
  45.                     fclose($handle);
  46.                 }
  47.             break;
  48.     }
  49.  
  50.     /* Не запускаем внутренний обработчик ошибок PHP */
  51.     return true;
  52. }
  53. // переключаемся на пользовательский обработчик
  54. $old_error_handler = set_error_handler("myErrorHandler");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement