Mantenerlo aquí para que cualquiera que venga después de mí pueda encontrar estas configuraciones fácilmente.
En mi trabajo he estado escribiendo un microservicio con java con estilo reactivo. También estoy usando mongodb con garbo. Recientemente tuve un problema en el que una de mis consultas funcionaba perfectamente desde mongo compass pero con garbo no funcionaba como se esperaba. Así que necesitaba ver la consulta que generaba garbo.
El documento oficial de quarkus proporciona una manera de registrar consultas mongodb en la salida. Desafortunadamente, solo funciona para Java no reactivo y la guía no lo menciona adecuadamente.
quarkus.log.category."io.quarkus.mongodb.panache.common.runtime".level=DEBUG
Al principio pensé que, por alguna razón, tal vez la configuración de mi proyecto era incorrecta o tal vez las configuraciones estaban en conflicto y es por eso que no mostraba los registros. Nunca pensé cuál era el problema con la codificación reactiva. Así que solucioné el problema de otras maneras y encontré la solución adecuada.
Después de eso, me molesté un poco y seguí preguntándome por qué el registro de consultas no funcionaba y me frustré. Luego, en un momento eureka, miré detenidamente la clave de configuración y puedo ver claramente que el registro estaba habilitando una categoría io.quarkus.mongodb.panache.common.runtime, así que fui a buscar ese paquete. Desde mi IDE de jetbrains lo encontré y puedo ver claramente que hay un common.runtime.CommonPanacheQueryImpl y otro common.reactive.runtime.CommonReactivePanacheQueryImpl.
Así que intenté filtrar por esa categoría y funcionó :)
Entonces la solución es simplemente habilitar DEBUG en esta categoría. Así que agregue esta línea a su application.properties.
quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG
Ahora el registro está funcionando
Mientras buscaba, encontré otra forma de habilitar el registro de consultas, pero se registra desde el controlador mongodb. Para habilitarlo, simplemente agregue esto a application.properties
quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG
El resultado se ve así, también genera el resultado desde la base de datos.
Solo pensé en publicar estas configuraciones aquí como referencia para alguien que está haciendo Java reactivo con garbo. Como he invertido uno de mis fines de semana resolviendo esto y otras cosas. Probablemente haga una publicación más larga sobre mi viaje como ingeniero de software sénior para depurar un problema de capacidad de garbo y cómo un junior podría manejarlos y cuál fue mi proceso de pensamiento paso a paso durante esto.
Aprendí todo esto porque seguía preguntándome "¿por qué no funcionaría?" y seguía molestándome.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3