Сохраню здесь, чтобы любой после меня мог легко найти эти конфигурации.
На своей работе я пишу микросервис на 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.
Я попробовал фильтровать по этой категории, и это сработало :)
Поэтому решение состоит в том, чтобы просто включить DEBUG для этой категории. Поэтому добавьте эту строку в свой application.properties.
quarkus.log.category."io.quarkus.mongodb.panache.common.reactive.runtime".level=DEBUG
Теперь журналирование работает
Во время поиска я нашел другой способ включить ведение журнала запросов, но это ведение журнала из драйвера mongodb. Чтобы включить его, просто добавьте это в файл application.properties
quarkus.log.category."org.mongodb.driver.protocol.command".level=DEBUG
Результат выглядит следующим образом, он также выводит результат из базы данных.
Просто подумал, что опубликую эти конфигурации здесь как ссылку на тех, кто с размахом занимается реактивной Java. Поскольку я потратил один из своих выходных на выяснение этого и других вещей. Я, вероятно, напишу более длинный пост о своем пути в качестве старшего инженера-программиста, чтобы отладить проблему с возможностями размаха, а также о том, как младший может с этим справиться, и каков был мой пошаговый мыслительный процесс во время этого.
Я узнал все это, потому что постоянно задавал себе вопрос: «Почему это не сработает?» и это продолжало меня беспокоить.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3