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.