Quando uma coisa falha só em produção, o melhor aliado é um registo 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 registo de erros da pasta, ou com um ficheiro seu, que é mais fácil de ler e de limpar.
Duas maneiras, e quando usar cada uma
|
error_log('texto') |
Ficheiro seu |
| Onde escreve |
No registo de erros do PHP, o ficheiro 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 ficheiro por dia e apagar os antigos. |
| Quando |
Um aviso pontual, uma depuração rápida. |
O registo de uma aplicação ou de um cron. |
Uma função pequena que serve
<?php
function registar(string $nivel, string $texto): void {
$pasta = '/home/CONTA/logs-app';
$ficheiro = $pasta . '/app-' . date('Y-m-d') . '.log';
$linha = date('H:i:s') . ' [' . $nivel . '] ' . $texto . PHP_EOL;
error_log($linha, 3, $ficheiro);
}
registar('INFO', 'Encomenda 123 gravada');
registar('ERRO', 'A API respondeu 502');
O segundo argumento 3 manda o error_log acrescentar ao ficheiro indicado em vez de usar o registo de erros, e por isso a quebra de linha (PHP_EOL) é sua. A hora sai no fuso que o PHP da pasta estiver a usar. 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 registo dentro do site pode ser descarregado 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 registo de teste e abra o ficheiro no Gestor de Ficheiros. No Terminal, o tail -n 50 ficheiro.log mostra as últimas cinquenta linhas (o Terminal do cPanel).
|
|
| 4 |
Registe 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 registe tudo.
|
|
|
Nunca escreva palavras-passe, chaves de API nem dados pessoais no registo. O ficheiro fica no disco, entra nas cópias de segurança e há quem o abra para ajudar. Registe o identificador (a encomenda 123), não o cartão, o contacto ou o corpo inteiro do pedido.
|
|
Para ver o motivo de uma página em branco, o registo de erros do PHP é o primeiro sítio (uma página em branco em PHP). O seu registo serve para o que o PHP não considera erro: uma encomenda que não gravou, uma API que respondeu mal, uma decisão do código.
|
|
O registo não é criado e não percebe porquê? Diga-nos o caminho que usou e a mensagem do error_log da pasta.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |