Funções de Error e Logging PHP

Introdução ao PHP Error

As funções de Error e Logging permitem que você trate e registre erros.

As funções de Error permitem que os usuários definam regras de tratamento de erro e modificam a forma de registrar erros.

As funções de logging permitem que os usuários registrem aplicações e enviem mensagens de log para e-mails, logs de sistema ou outros computadores.

As funções de erro são usadas para concluir o tratamento de erro e o registro de logs.

As funções de erro permitem que definamos nossas próprias regras de tratamento de erro e modificamos a forma de registro de erros.

As funções de logging permitem que enviamos mensagens diretamente para outros computadores, e-mails ou logs de sistema.

As funções de relatório de erro permitem que definamos o tipo e o nível de erros.

Instalação

As funções de erro são parte integrante do núcleo do PHP. Não é necessário instalação para usar essas funções.

Configuração de tempo de execução

O comportamento da função error é influenciado pelas configurações no php.ini.

As opções de configuração de erros e logging são as seguintes:

Nome Valor padrão Descrição Alcance modificável
error_reporting NULL Define o nível de relatório de erro (inteiro ou constante nomeada). PHP_INI_ALL
display_errors "1"

Define se os erros devem ser exibidos na tela como saída ou ocultados para o usuário.

Atenção:Esta característica não deve ser usada em sistemas de produção (apenas suporte para desenvolvimento).

PHP_INI_ALL
display_startup_errors "0"

Mesmo que o display_errors esteja configurado para ativado, as informações de erro do processo de inicialização do PHP não serão exibidas.

Comentário: É altamente recomendado que o display_startup_errors seja desativado além dos fins de depuração.

PHP_INI_ALL
log_errors "0"

Define se as informações de erro da execução do script devem ser registradas no log de erro do servidor ou no error_log.

Comentário: Esta é uma configuração específica do servidor.

Comentário: É altamente recomendado usar logs de erro no sistema de produção para registrar as informações de erro exibidas no site.

PHP_INI_ALL
log_errors_max_len "1024"

Define o número máximo de bytes para log_errors. No error_log, informações sobre a fonte do erro são adicionadas.

O valor padrão é 1024, se definido como 0, não há limite de comprimento.

A configuração de comprimento tem efeito limitado nos erros registrados, nos erros exibidos e no $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

Determinar se as informações de erro repetidas devem ser registradas.

Os erros repetidos devem aparecer na mesma linha de código do mesmo arquivo, a menos que ignore_repeated_source seja definido como true.

PHP_INI_ALL
ignore_repeated_source "0"

Determinar se as informações de erro repetidas devem ser registradas. Ao ignorar mensagens repetidas, também ignora a origem das mensagens.

Quando esta configuração estiver ativada, as informações repetidas não serão gravadas, seja por diferentes arquivos ou diferentes linhas de código de origem.

PHP_INI_ALL
report_memleaks "1" Se o parâmetro for definido como On (padrão), será exibido o relatório de vazamento de memória detectado pelo gerenciador de memória Zend. PHP_INI_ALL
track_errors "0" Se ativado, o último erro sempre existirá na variável $php_errormsg. PHP_INI_ALL
html_errors "1" Desativar tags HTML nas informações de erro.
  • PHP_INI_ALL
  • PHP_INI_SYSTEM em PHP <= 4.2.3.
xmlrpc_errors "0" Se ativado, desativa o relatório normal de erros e define o formato dos erros como o formato das informações de erro XML-RPC. PHP_INI_SYSTEM
xmlrpc_error_number "0" Usado como valor do elemento faultCode do XML-RPC. PHP_INI_ALL
docref_root "" (disponível desde PHP 4.3) PHP_INI_ALL
docref_ext "" (disponível desde PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL Determinar a string que será impressa antes da informação de erro. PHP_INI_ALL
error_append_string NULL Determinar a string que será impressa após a informação de erro. PHP_INI_ALL
error_log NULL

Definir o arquivo no qual os erros do script serão gravados. O arquivo deve ser gravável pelo usuário do servidor web.

Se usada a valor especial syslog, enviar as informações de erro para o registrador de logs do sistema.

PHP_INI_ALL

Funções de Error e Logging PHP

Função Descrição
debug_backtrace() Gerar o backtrace.
debug_print_backtrace() Imprimir o backtrace.
error_get_last() Retornar o último erro ocorrido.
error_log() Enviar mensagens de erro para o registro de erros do servidor, arquivo ou destino remoto.
error_reporting() Determinar qual erro deve ser relatado.
restore_error_handler() Restaurar o manipulador de erros anterior.
restore_exception_handler() Restaura o tratador de exceções anterior.
set_error_handler() Define a função de tratamento de erro personalizada.
set_exception_handler() Define a função de tratamento de exceções personalizada.
trigger_error() Cria mensagens de erro de nível de usuário.
user_error() Sinónimo de trigger_error()

Constantes predefinidas de erro e log do PHP 5

Valor Constante Descrição
1 E_ERROR Erro fatal no tempo de execução. Erro que não pode ser corrigido. Termina a execução do script.
2 E_WARNING Erro não fatal no tempo de execução. Não termina a execução do script.
4 E_PARSE Erro de análise de sintaxe no tempo de compilação. O erro de análise é gerado apenas pelo analisador.
8 E_NOTICE Notificação de tempo de execução. Indica que o script encontrou uma situação que pode se manifestar como um erro, mas também pode haver notificações semelhantes em scripts que funcionam normalmente.
16 E_CORE_ERROR Erro fatal no processo de inicialização do PHP. Este erro é semelhante a E_ERROR, mas gerado pelo núcleo do motor PHP.
32 E_CORE_WARNING Aviso no processo de inicialização do PHP (erro não fatal). Semelhante a E_WARNING, mas gerado pelo núcleo do motor PHP.
64 E_COMPILE_ERROR Erro de compilação fatal. Semelhante a E_ERROR, mas gerado pelo motor de script Zend.
128 E_COMPILE_WARNING Aviso de compilação no tempo de compilação (erro não fatal). Semelhante a E_WARNING, mas gerado pelo motor de script Zend.
256 E_USER_ERROR Informações de erro geradas pelo usuário. Semelhante a E_ERROR, mas gerada pelo usuário mesmo usando a função PHP trigger_error().
512 E_USER_WARNING Informações de aviso geradas pelo usuário. Semelhante a E_WARNING, mas gerada pelo usuário mesmo usando a função PHP trigger_error() no código.
1024 E_USER_NOTICE Informações de notificação geradas pelo usuário. Semelhante a E_NOTICE, mas gerada pelo usuário mesmo usando a função PHP trigger_error() no código.
2048 E_STRICT Ativar a sugestão de modificação de código do PHP para garantir que o código tenha a melhor interoperabilidade e compatibilidade para frente.
4096 E_RECOVERABLE_ERROR Erro fatal capturável. Isso indica que ocorreu um erro muito perigoso, mas ainda não levou o motor PHP a um estado instável. Se o erro não for capturado pelo manipulador de erro personalizado do usuário (veja set_error_handler()), ele se tornará um E_ERROR e o script será encerrado.
8192 E_DEPRECATED Notificações de tempo de execução. Ativado, fornecerá alertas para código que pode não funcionar corretamente em versões futuras.
16384 E_USER_DEPRECATED Mensagens de aviso geradas pelo usuário. Semelhantes a E_DEPRECATED, mas são geradas pelo usuário mesmo usando a função PHP trigger_error() no código.
32767 E_ALL E_STRICT todas as mensagens de erro e aviso, exceto as especificadas.