«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как включить ведение журнала запросов mongodb в реактивной Java для Quarkus с размахом

Как включить ведение журнала запросов mongodb в реактивной Java для Quarkus с размахом

Опубликовано 30 июля 2024 г.
Просматривать:510

Сохраню здесь, чтобы любой после меня мог легко найти эти конфигурации.

На своей работе я пишу микросервис на Java с реактивным стилем. Я также использую mongodb с размахом. Недавно у меня возникла проблема: один из моих запросов с помощью mongo compass работал отлично, но с размахом он работал не так, как ожидалось. Поэтому мне нужно было увидеть запрос, который генерирует Panache.

Официальный документ Quarkus предоставляет способ регистрации запроса mongodb в выходных данных. К сожалению, это работает только для нереактивной Java, и в руководстве об этом не упоминается должным образом.

quarkus.log.category."io.quarkus.mongodb.panache.common.runtime".level=DEBUG

Сначала я по какой-то причине подумал, что, возможно, конфигурация моего проекта неправильная или, возможно, конфигурации конфликтуют, и поэтому логи не отображаются. Я никогда не думал, что проблема в реактивном кодировании. Поэтому я отладил проблему другими способами и нашел правильное решение для своей проблемы.

После этого я несколько забеспокоился и продолжал спрашивать себя, почему журналирование запросов не работает, и разочаровался. Затем, в момент эврики, я внимательно посмотрел на конфигурационный ключ и ясно увидел, что журнал включает категорию io.quarkus.mongodb.panache.common.runtime, поэтому я пошел искать этот пакет. В своей IDE Jetbrains я нашел это и ясно вижу, что существует common.runtime.CommonPanacheQueryImpl и еще один common.reactive.runtime.CommonReactivePanacheQueryImpl.

Folder structure of the package

Я попробовал фильтровать по этой категории, и это сработало :)
Поэтому решение состоит в том, чтобы просто включить DEBUG для этой категории. Поэтому добавьте эту строку в свой application.properties.

quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG

Теперь журналирование работает

Query logging working

Бонус

Во время поиска я нашел другой способ включить ведение журнала запросов, но это ведение журнала из драйвера mongodb. Чтобы включить его, просто добавьте это в файл application.properties

quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG

Результат выглядит следующим образом, он также выводит результат из базы данных.

MongoDB driver logging

Просто подумал, что опубликую эти конфигурации здесь как ссылку на тех, кто с размахом занимается реактивной Java. Поскольку я потратил один из своих выходных на выяснение этого и других вещей. Я, вероятно, напишу более длинный пост о своем пути в качестве старшего инженера-программиста, чтобы отладить проблему с возможностями размаха, а также о том, как младший может с этим справиться, и каков был мой пошаговый мыслительный процесс во время этого.

Я узнал все это, потому что постоянно задавал себе вопрос: «Почему это не сработает?» и это продолжало меня беспокоить.

Рекомендации

  1. Мои собственные заметки
  2. Документация Quarkus
  3. Обсуждение на GitHub
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/minhaz1217/how-to-enable-mongodb-query-logging-in-reactive-java-for-quarkus-with-panache-22pa?1 Если есть какие-либо нарушения , пожалуйста, свяжитесь с Study_golang @163.comdelete
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3