Mantendo-o aqui para que qualquer pessoa depois de mim possa encontrar essas configurações facilmente.
No meu trabalho, tenho escrito um microsserviço com java com estilo reativo. Também estou usando o mongodb com brio. Recentemente, tive um problema em que uma de minhas consultas estava funcionando perfeitamente no mongo compass, mas com elegância não estava funcionando como esperado. Então, eu precisava ver a consulta que o brio estava gerando.
O documento oficial do quarkus fornece uma maneira de registrar a consulta mongodb na saída. Infelizmente, ele só funciona para Java não reativo e o guia não menciona isso corretamente.
quarkus.log.category."io.quarkus.mongodb.panache.common.runtime".level=DEBUG
No começo pensei que por algum motivo talvez a configuração do meu projeto estivesse errada ou talvez as configurações estivessem conflitantes e é por isso que não estava mostrando os logs. Nunca pensei qual seria o problema da codificação reativa. Então, depurei o problema de outras maneiras e encontrei a solução adequada para o meu problema.
Depois disso, fiquei um pouco incomodado e fiquei me perguntando por que o registro de consultas não estava funcionando e fiquei frustrado. Então, em um momento eureka, olhei atentamente a chave de configuração e posso ver claramente que o log estava habilitando uma categoria io.quarkus.mongodb.panache.common.runtime, então procurei esse pacote. No meu IDE jetbrains eu o encontrei e posso ver claramente que existe um common.runtime.CommonPanacheQueryImpl e outro common.reactive.runtime.CommonReactivePanacheQueryImpl.
Então tentei filtrar por essa categoria e funcionou :)
Portanto a solução é apenas habilitar o DEBUG nesta categoria. Portanto, adicione esta linha ao seu application.properties.
quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG
Agora o registro está funcionando
Enquanto pesquisava, encontrei outra maneira de ativar o log de consultas, mas é o log do driver mongodb. Para habilitá-lo, basta adicionar isto ao application.properties
quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG
O resultado é assim, mas também gera o resultado do banco de dados.
Pensei em postar essas configurações aqui como uma referência para alguém que está fazendo java reativo com elegância. Como eu investi um dos meus fins de semana para descobrir isso e outras coisas. Provavelmente farei uma postagem mais longa sobre minha jornada como engenheiro de software sênior para depurar um problema de capacidade de panache e como um júnior pode navegar por isso e qual foi meu processo de pensamento passo a passo durante isso.
Aprendi tudo isso porque ficava me perguntando "por que não funcionaria?" e isso continuou me incomodando.Referências
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3