Como ativar todos os erros e avisos e registrá-los em um arquivo, mas configurar tudo isso no script (sem alterar nada no php.ini)?
Quero definir um nome de arquivo e para que todos os erros e avisos sejam registrados nele.
php
error-handling
Gorep
fonte
fonte
ini_set
funciona apenas se esse código for executado. Não é útil para código que possui erros de análise porque o erro ocorrerá antes que o código seja executado. Em vez disso, escreva essas alterações no php.ini.php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log
. Veja perishablepress.com/…tmp/php-error.log
para qual local você deseja?Vejo
error_log
- Envie uma mensagem de erro para algum lugarExemplo
Você pode personalizar o tratamento de erros com seus próprios manipuladores de erro para chamar essa função sempre que ocorrer um erro ou aviso ou o que for necessário registrar. Para informações adicionais, consulte o Capítulo Tratamento de Erros no Manual do PHP
fonte
Basta colocar esses códigos no topo do seu arquivo PHP / index:
fonte
display_errors
NUNCA deve estar ativado em um servidor de produção ativo - essa diretiva é especificamente para saída do usuário e não tem efeito no log. php.net/manual/en/…adicione este código em .htaccess (como uma alternativa da função php.ini / ini_set ):
* como comentado: é para servidores do tipo Apache , e não para Nginx ou outros.
fonte
Essa é a minha função curta pessoal
fonte
Dê uma olhada na
log_errors
opção de configuração no php.ini. Parece fazer exatamente o que você quer. Eu acho que você pode usar aerror_log
opção para definir seu próprio arquivo de log também.Quando a
log_errors
diretiva é definida comoOn
, quaisquer erros relatados pelo PHP serão registrados no log do servidor ou no arquivo especificado comerror_log
. Você também pode definir essas opçõesini_set
, se necessário.(Observe que
display_errors
deve ser desativado no php.ini se esta opção estiver ativada)fonte
display_errors
ser desativado se você ativarlog_errors
? Não faz sentido na minha opinião. :)Além disso, você precisa da diretiva "AllowOverride Options" para que isso funcione. (Apache 2.2.15)
fonte