Vários logs de erro do Apache para um host virtual

1

Eu escrevi mal o aplicativo PHP que produz muitas mensagens E_NOTICE e E_WARNING para o log de erros. Eu não posso fazer muito sobre isso, mas é difícil acompanhar esses erros reais como E_ERROR e pior.

A pergunta é: Posso ter vários arquivos de log de erros com LogLevels diferentes para um único host virtual no Apache?

Por exemplo, um com aviso LogLevel e outro com erro LogLevel.

    
por ioku 02.04.2015 / 15:09

2 respostas

0

Eu não sei de imediato se existe uma maneira nativa de fazer isso (mas veja no final desta resposta), mas se você estiver no Linux, você pode executar alguns comandos no registro mestre como tail -f / path / to / main / | grep errorstring > error.log tail -f / path / to / main / | grep warningstring > warning.log

O sinalizador -f continuará vigiando novas entradas. Substitua errorstring ou warningstring por qualquer que seja o texto exato que é registrado para todas as entradas de tipo error ou type warning.

Você pode executá-los em segundo plano e, portanto, eles não terminam quando a sessão do shell é fechada, colocando cada comando em um script bash e, em seguida, executando-o usando a seguinte sintaxe nohup /path/to/script.sh > / dev / null 2 > & 1 &

Se for apenas para uso temporário, você poderá iniciá-los manualmente em algumas sessões de tela. Para uso a longo prazo, certifique-se de colocar alguma rotação de log no local para que eles não fiquem muito grandes.

Outra abordagem mais nativa seria definir uma função de manipulador de erros PHP personalizada para fazer o registro. Você poderia aplicá-lo a todo o código PHP sem modificar o aplicativo usando a diretiva ini auto_prepend_file.

    
por 02.04.2015 / 16:51
0

Legal outra maneira de fazer isso é configurar o daemon rsyslog para criar esses arquivos. Basicamente, você pode configurar uma regra para gerar um arquivo com base em uma correspondência de texto. Abra o arquivo /etc/rsyslog.conf e cole isso lá

se $ programname == 'my-name' e $ msg contiver 'errorstring' então /var/log/my-error.log

    
por 03.04.2015 / 20:14