konto usunięte

Temat: logowanie błędów do pliku

Witam,

Jak ustawić PHP by logował mi do pliku niewyłapanie i nie obsłużone wyjątki?
Ustawienie:

ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);
// wyświetlanie błędów
ini_set('display_errors', true);
// logowanie błędów do pliku
ini_set('log_errors', true);
ini_set('error_log', APP_ROOT.'/var/log/php_error.log');

..niestety loguje mi do pliku tylko błędy typu WARRING, NOTICE, itp.Łukasz Bandzarewicz edytował(a) ten post dnia 30.10.08 o godzinie 12:11
Łukasz Ważny

Łukasz Ważny winning doesn't
really matter as
long as you win

Temat: logowanie błędów do pliku

Witam,
Myślę, że jednym sposobem jest umieszczenie kodziku, który może zwrócić wyjątek, w blok try{} catch{}. W bloku catch robisz zapis wyjątku do loga, wadą lub zaletą będzie dalsze działanie aplikacji.

Inna możliwość to skorzystanie z funkcji set_exception_handler, wtedy jednak aplikacja zostanie zatrzymana po obsłużeniu wyjątku.
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: logowanie błędów do pliku

Łukasz Ważny:
Witam,
Myślę, że jednym sposobem jest umieszczenie kodziku, który może zwrócić wyjątek, w blok try{} catch{}. W bloku catch robisz zapis wyjątku do loga, wadą lub zaletą będzie dalsze działanie aplikacji.
albo rzucanie własnymi wyjątkami, dziedziczącymi po klasie Exception, z wbudowanym własnoręcznie logowaniem.
Tomasz Skaraczyński

Tomasz Skaraczyński projektant,
programista, ATP
Skaraczyński Tomasz

Temat: logowanie błędów do pliku

Łukasz Ważny:
Inna możliwość to skorzystanie z funkcji set_exception_handler, wtedy jednak aplikacja zostanie zatrzymana po obsłużeniu wyjątku.

To zależy od tego jak napiszemy obsługę przechwytywania błędu.

function my_error_handler($errNo, $errStr, $errFile, $errLine) {
$error_message = 'my_error_handler<br />';
$error_message .= 'ERRNO: ' . $errNo . chr(10) .
'TEKST: ' . $errStr . chr(10) .
'LOKALIZACJA: ' . $errFile .
', linia ' . $errLine.'<br />';
switch ($errNo) {
case E_USER_NOTICE:
$error_message .= '<b>Notice</b>';
break;
case E_USER_WARNING:
$error_message .= '<b>Warning</b>';
break;
case E_USER_ERROR:
$error_message .= '<b>Error</b>';
break;
}
echo($error_message);
}

Zamiast echo można dąć funkcję logującą do komunikaty od pliku.

Następna dyskusja:

Obsługa błędów




Wyślij zaproszenie do