Funzioni errori e logging PHP

Introduzione a PHP Error

Le funzioni Error e Logging permettono di gestire e registrare gli errori.

La funzione Error permette agli utenti di definire le regole di gestione degli errori e modificare il modo di registrare gli errori.

Le funzioni di logging permettono agli utenti di registrare le applicazioni e inviare messaggi di log via email, log di sistema o altri computer.

La funzione error viene utilizzata per completare la gestione degli errori e la registrazione.

La funzione error ci permette di definire le nostre regole di gestione degli errori e modificare il modo di registrare gli errori.

Le funzioni di logging ci permettono di inviare messaggi direttamente a altri computer, email o log di sistema.

La funzione di report degli errori ci permette di specificare il tipo e il livello degli errori.

Installazione

La funzione error è parte integrante del nucleo di PHP. Queste funzioni possono essere utilizzate senza installazione.

Configurazione runtime

Il comportamento della funzione error è influenzato dalle impostazioni di php.ini.

Le opzioni di configurazione degli errori e del logging sono le seguenti:

Nome Valore predefinito Descrizione Intervallo modificabile
error_reporting NULL Imposta il livello di report degli errori (intero o costante nomeata). PHP_INI_ALL
display_errors "1"

Stabilisce se gli errori devono essere visualizzati a schermo come output o nascosti all'utente.

Attenzione:Questa funzionalità non dovrebbe essere utilizzata nei sistemi di produzione (supporta solo lo sviluppo).

PHP_INI_ALL
display_startup_errors "0"

Anche se display_errors è impostato su attivato, gli errori durante l'avvio di PHP non vengono visualizzati.

Commento: Si consiglia vivamente di impostare display_startup_errors su disattivato oltre ai fini di debug.

PHP_INI_ALL
log_errors "0"

Imposta se i messaggi di errore eseguiti dallo script devono essere registrati nel log degli errori del server o in error_log.

Commento: Questo è un'opzione di configurazione specifica del server.

Commento: Si consiglia vivamente di utilizzare la registrazione degli errori di log per gli errori visualizzati sul sito web in un sistema di produzione.

PHP_INI_ALL
log_errors_max_len "1024"

Imposta la dimensione massima in byte di log_errors. error_log aggiunge informazioni sulla sorgente degli errori.

Il valore predefinito è 1024, se impostato a 0 non ci sono limiti di lunghezza.

L'impostazione della lunghezza ha un limite per gli errori registrati, gli errori visualizzati e $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

Stabilire se registrare le informazioni di errore duplicate.

Gli errori duplicati devono apparire sulla stessa riga di codice del medesimo file, a meno che ignore_repeated_source non sia impostato su true.

PHP_INI_ALL
ignore_repeated_source "0"

Stabilire se registrare le informazioni di errore duplicate. Ignorando i messaggi duplicati, si ignoreranno anche le loro fonti.

Quando questa impostazione è attiva, le informazioni duplicate non verranno registrate per essere state generate da file o righe di codice di origine diverse.

PHP_INI_ALL
report_memleaks "1" Se il parametro è impostato su On (predefinito), verranno visualizzati i report di perdita di memoria rilevati dal gestore della memoria Zend. PHP_INI_ALL
track_errors "0" Se abilitato, l'ultimo errore rimarrà sempre nella variabile $php_errormsg. PHP_INI_ALL
html_errors "1" Disabilitare i tag HTML nell'informazione di errore.
  • PHP_INI_ALL
  • PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" Se abilitato, disabilita il normale report degli errori e imposta il formato degli errori come formato delle informazioni di errore XML-RPC. PHP_INI_SYSTEM
xmlrpc_error_number "0" Utilizzato come valore dell'elemento faultCode di XML-RPC. PHP_INI_ALL
docref_root "" (disponibile da PHP 4.3) PHP_INI_ALL
docref_ext "" (disponibile da PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL Stabilire la stringa di output precedente all'informazione di errore. PHP_INI_ALL
error_append_string NULL Stabilire la stringa di output successiva all'informazione di errore. PHP_INI_ALL
error_log NULL

Impostare il file in cui verranno registrati gli errori del script. Il file deve essere scrivibile dall'utente del server web.

Se è stato utilizzato il valore speciale syslog, inviare le informazioni di errore al registratore di sistema.

PHP_INI_ALL

Funzioni errori e logging PHP

Funzione Descrizione
debug_backtrace() Generare la backtrace.
debug_print_backtrace() Stampare la backtrace.
error_get_last() Restituire l'ultimo errore accaduto.
error_log() Inviare messaggi di errore al registro degli errori del server, al file o al destinatario remoto.
error_reporting() Stabilire quale errore segnalare.
restore_error_handler() Ripristinare il programma di gestione degli errori precedente.
restore_exception_handler() Ripristinare il gestore delle eccezioni precedente.
set_error_handler() Impostare la funzione di gestione degli errori personalizzata.
set_exception_handler() Impostare la funzione di gestione delle eccezioni personalizzata.
trigger_error() Creare messaggi di errore di livello utente.
user_error() Alias di trigger_error()

Costanti di errore e log predefinite di PHP 5

Valore Costante Descrizione
1 E_ERROR Errori fatale di runtime. Errori non riparabili. Interrompe l'esecuzione dello script.
2 E_WARNING Errori non fatale di runtime. Non interrompe l'esecuzione dello script.
4 E_PARSE Errori di analisi di sintassi durante la compilazione. Gli errori di analisi sono generati solo dall'analizzatore.
8 E_NOTICE Notifiche di runtime. Indica che lo script incontra una situazione che potrebbe manifestarsi come un errore, ma potrebbe anche avere notifiche simili in uno script che funziona correttamente.
16 E_CORE_ERROR Errori fatale durante il processo di avvio di inizializzazione PHP. Questo errore è simile a E_ERROR, ma generato dal nucleo del motore PHP.
32 E_CORE_WARNING Avvisi durante il processo di avvio di inizializzazione PHP (errori non fatale). Simile a E_WARNING, ma generati dal nucleo del motore PHP.
64 E_COMPILE_ERROR Errori di compilazione fatale. Simile a E_ERROR, ma generati dal motore di script Zend.
128 E_COMPILE_WARNING Avvisi di compilazione (errori non fatale). Simile a E_WARNING, ma generati dal motore di script Zend.
256 E_USER_ERROR Messaggi di errore generati dall'utente. Simile a E_ERROR, ma generati dall'utente stesso utilizzando la funzione PHP trigger_error() nel codice.
512 E_USER_WARNING Avvisi informativi generati dall'utente. Simile a E_WARNING, ma generati dall'utente stesso utilizzando la funzione PHP trigger_error() nel codice.
1024 E_USER_NOTICE Notizie informative generate dall'utente. Simile a E_NOTICE, ma generate dall'utente stesso utilizzando la funzione PHP trigger_error() nel codice.
2048 E_STRICT Abilitare i suggerimenti di modifica del codice PHP per garantire che il codice abbia la migliore interoperabilità e compatibilità futura.
4096 E_RECOVERABLE_ERROR Errore fatale catturabile. Rappresenta un errore molto pericoloso che potrebbe non aver portato l'engine PHP a uno stato instabile. Se l'errore non viene catturato dal gestore di errore definito dall'utente (vedi set_error_handler()), diventerà un E_ERROR e il script si fermerà.
8192 E_DEPRECATED Notifica runtime. Abilitato, darà avvisi sui codici che potrebbero non funzionare correttamente nelle versioni future.
16384 E_USER_DEPRECATED Informazioni di avviso generate dall'utente. Simili a E_DEPRECATED, ma generate dall'utente stesso che utilizza la funzione PHP trigger_error() nel codice.
32767 E_ALL Tutte le informazioni di errore e avviso E_STRICT. A meno che non siano specificate altrimenti.