Quando uma coisa falha só em produção, o melhor aliado é um registro que o próprio código escreve: uma linha com a hora, o que aconteceu e os dados que ajudam a perceber. Em PHP faz-se com a função error_log(), que escreve no log de erros da pasta, ou com um arquivo seu, que é mais fácil de ler e de limpar.
Duas maneiras, e quando usar cada uma
|
error_log('texto') |
Arquivo seu |
| Onde escreve |
No log de erros do PHP, o arquivo error_log da pasta do script. |
Onde você disser, por exemplo numa pasta logs fora da pasta pública. |
| Mistura |
Fica no meio dos avisos e erros do PHP. |
Só tem o que você escreveu: lê-se de uma vez. |
| Limpar |
Cresce sem parar e há um por pasta. |
Pode ter um arquivo por dia e apagar os antigos. |
| Quando |
Um aviso pontual, uma depuração rápida. |
O registro de uma aplicação ou de um cron. |
Uma função pequena que serve
<?php
function registrar(string $nivel, string $texto): void {
$pasta = '/home/CONTA/logs-app';
$arquivo = $pasta . '/app-' . date('Y-m-d') . '.log';
$linha = date('H:i:s') . ' [' . $nivel . '] ' . $texto . PHP_EOL;
error_log($linha, 3, $arquivo);
}
registrar('INFO', 'Encomenda 123 gravada');
registrar('ERRO', 'A API respondeu 502');
O segundo argumento 3 manda o error_log acrescentar ao arquivo indicado em vez de usar o log de erros, e por isso a quebra de linha (PHP_EOL) é sua. A hora sai no fuso que o PHP da pasta estiver usando. Se quiser outro, fixe-o no início do script com date_default_timezone_set(), mas escolha um e mantenha-o.
Pô-lo a funcionar, passo a passo
| 1 |
Crie a pasta fora da pasta pública, por exemplo ao lado de public_html. Um registro dentro do site pode ser baixado por qualquer pessoa que adivinhe o nome.
|
|
| 2 |
Confirme que o PHP escreve lá. A pasta tem de pertencer à conta e deixar escrever. Se a primeira linha nunca aparece, é quase sempre o caminho ou a permissão.
|
|
| 3 |
Escreva um registro de teste e abra o arquivo no Gerenciador de Arquivos. No Terminal, o tail -n 50 arquivo.log mostra as últimas cinquenta linhas (o Terminal do cPanel).
|
|
| 4 |
Registre os pontos que importam: o início e o fim de uma tarefa, cada falha de uma chamada externa, cada decisão que o código tomou. Não registre tudo.
|
|
|
Nunca escreva senhas, chaves de API nem dados pessoais no registro. O arquivo fica no disco, entra nos backups e há quem o abra para ajudar. Registre o identificador (o pedido 123), não o cartão, o contato ou o corpo inteiro do pedido.
|
|
Para ver o motivo de uma página em branco, o log de erros do PHP é o primeiro lugar (uma página em branco em PHP). O seu registro serve para o que o PHP não considera erro: um pedido que não gravou, uma API que respondeu mal, uma decisão do código.
|
|
O registro não é criado e não percebe por quê? Diga-nos o caminho que usou e a mensagem do error_log da pasta.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Hospedagem de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupom) Ver planos |