Facilidade de registro.
Logger é escrito em PHP
Requisito: php >=8.1
Documentação: http://bhenklogger.readthedocs.io/
O Logger permite invocar instruções de log com métodos estáticos:
Log::debug("Your message");
As instruções de log serão impressas em um arquivo de log. As instruções acima de um determinado nível serão impressas em um arquivo de log de erros.
Até agora nada de novo sob o sol. Vem o teste PHPUnit. Embora convide você a escrever código testável, sempre haverá lugares mais ou menos obscuros em seu código. O fluxo do programa utiliza a junção esperada em uma instrução if ? Esta ou aquela variável tem o valor certo em um momento preciso? Você pode colocar instruções de depuração para seu logger nesses locais, mas é provável que você se afogue em instruções de log quando sua base de código crescer o suficiente. Não seria ótimo ver exatamente essas instruções de log no seu console, daquela parte da sua base de código que está em teste, com o nível de severidade escolhido? Um Trait e um Attribute no pacote bhenkloggerunit permitem que você faça isso com precisão, sem tocar no código em teste. Trait e Attribute são aplicados no TestCase e/ou método de teste.
Aqui estão capturas de tela da saída para console de mensagens de log normais, que de outra forma seriam afogadas em uma confusão de instruções em seus arquivos de log.
Observe que dos 22 testes, apenas o(s) TestCase(s) e/ou método(s) de teste escolhido(s) estão gerando instruções de log do código em teste para o console.
Inspecione se as mensagens de erro são claras e compreensíveis ao escrever código orientado a testes.
composer require bhenk/logger
Boa codificação!