Как ловить ошибки/предупреждения с помощью FirePHP

Я не уверен, как заставить FirePHP ловить ошибки и предупреждения и сообщать о них в консоли Firebug.

Я установил FirePHP и почти уверен, что он работает — я вижу ответы от них в консоли:

fb('Log message', FirePHP::LOG);
fb('Info message', FirePHP::INFO);
fb('Warn message', FirePHP::WARN);
fb('Error message', FirePHP::ERROR);

В основном я вижу «Сообщение журнала», «Информационное сообщение», «Предупреждающее сообщение» и «Сообщение об ошибке». Затем я изменил свой код, чтобы намеренно сломать его — IT дал мне это из своих журналов:

[21-Jan-2013 22:19:49] PHP Warning:  Missing argument 3 for
echo_first_image(), called in
/app/web/xxx/wp-content/themes/xxx/home.php on
line 85 and defined in
/app/web/xxx/wp-content/themes/xxx/functions.php
on line 12

Я пытаюсь поймать и распечатать это в FirePHP, но оно не обнаруживается, и я не знаю, почему. Мой полный блок кода для инициализации FirePHP:

<?php /* debug */
require_once("debug/FirePHP.class.php");
require_once('debug/fb.php');
$firephp = FirePHP::getInstance(true);
ob_start();
fb('Log message', FirePHP::LOG);
fb('Info message', FirePHP::INFO);
fb('Warn message', FirePHP::WARN);
fb('Error message', FirePHP::ERROR);
?>

Объяснение или ресурс были бы полезны. Спасибо!


person Jeremy Schultz    schedule 07.02.2013    source источник
comment
Есть ли причина, по которой вы делаете это вместо того, чтобы проверять традиционные журналы ошибок PHP или даже журналы ошибок веб-сервера?   -  person Giacomo1968    schedule 07.02.2013
comment
Для этого конкретного проекта у меня нет доступа к журналу. Я ограничен каталогом WordPress.   -  person Jeremy Schultz    schedule 07.02.2013


Ответы (1)


Для этого вам нужно преобразовать ошибки в исключения.

с сайта FirePHP:

Обработка ошибок, исключений и утверждений

Преобразование ошибок E_WARNING, E_NOTICE, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE и E_RECOVERABLE_ERROR в ErrorExceptions и автоматическая отправка всех исключений в Firebug, если это необходимо.

Ошибки утверждения могут быть преобразованы в исключения и при желании выброшены.

Вы также можете вручную отправить пойманные исключения в Firebug.

$firephp->registerErrorHandler(
            $throwErrorExceptions=false);
$firephp->registerExceptionHandler();
$firephp->registerAssertionHandler(
            $convertAssertionErrorsToExceptions=true,
            $throwAssertionExceptions=false);

try {
  throw new Exception('Test Exception');
} catch(Exception $e) {
  $firephp->error($e);  // or FB::
}
person Danilo Kobold    schedule 07.02.2013
comment
Разница между ошибками и исключениями, вероятно, то, что мне не хватает. Я попробую это сегодня вечером, а пока это может быть полезно для тех, кто не понимает этого: vivanet2.com/blog/ - person Jeremy Schultz; 07.02.2013