За последние 24 часа нас посетили 22392 программиста и 1064 робота. Сейчас ищут 603 программиста ...

Error_handler функция

Тема в разделе "Решения, алгоритмы", создана пользователем Kreker, 16 янв 2011.

  1. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. function error_report($errno, $errstr, $errfile, $errline)  {
    4.     $full_trasing = false; // = true; Полная трассировка, включая дамп переменных
    5.     $trace = debug_backtrace();
    6.  
    7.     if ($full_trasing) {
    8.         $tracing = 'Tracing: '.var_export($trace, true).PHP_EOL.PHP_EOL.PHP_EOL;
    9.     }
    10.     else {
    11.         //fast tracing
    12.         $tracing = 'Tracing: ';
    13.         for ($i=4;$i--;) {
    14.             if (isset($trace[$i]["file"]))
    15.                 $tracing .= "File: ".$trace[$i]["file"]."[".$trace[$i]["line"]."] -> ";
    16.         }
    17.         $tracing = trim(substr($tracing, 0, -4));
    18.     }
    19.    
    20.     $log_file_name = SROOT."/system/logs/php.log"; //Адресс лога
    21.    
    22.     //Чтобы лог не занял случайно все место ^^
    23.     if (file_exists($log_file_name)) {
    24.         $size = filesize($log_file_name);
    25.         if ($size >= 1024 * 4096) {
    26.             return false;  
    27.         }
    28.     }
    29.        
    30.     $message = "[".date("d.m.Y H:i:s")."] E".$errno." [Line ".$errline."]: ".
    31.     $errfile.PHP_EOL.$errstr.PHP_EOL.$tracing.PHP_EOL.PHP_EOL.PHP_EOL;
    32.  
    33.     file_put_contents($log_file_name, $message, FILE_APPEND);
    34. }      
    35. set_error_handler("error_report");
    36. ?>
    37.  
    fasttrace:
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    спасибо, попробуем-с...
     
  3. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Ничего так, симпатично, ценю
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    +500, тока вместо переполнения файла сделаю разделение лога на несколько...