將其保留在這裡,以便我之後的任何人都可以輕鬆找到這些配置。
在我的工作中,我一直在用 java 寫反應式微服務。我也在使用 mongodb 和 panache。最近,我遇到了一個問題,我的一個查詢在 mongo compass 中工作得很好,但在華麗的情況下卻沒有按預期工作。所以我需要查看 panache 產生的查詢。
quarkus的官方文件提供了一種在輸出中記錄mongodb查詢的方法。不幸的是,它僅適用於非反應式 java,並且指南沒有正確提及這一點。
quarkus.log.category."io.quarkus.mongodb.panache.common.runtime".level=DEBUG
起初我認為由於某種原因可能我的專案配置錯誤或配置衝突,這就是為什麼它沒有顯示日誌。我從來沒有想過反應式編碼是什麼問題。因此我透過其他方式調試了該問題並找到了適合我的問題的解決方案。
之後我有點煩惱並不斷問自己為什麼查詢日誌不起作用並且感到沮喪。然後我突然靈機一動,仔細查看了配置鍵,可以清楚地看到日誌正在啟用一個類別 io.quarkus.mongodb.panache.common.runtime,所以我去尋找那個包。從我的jetbrains IDE中我找到了它,我可以清楚地看到有一個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
結果是這樣的,它也輸出了db的結果。
我只是想在這裡發布這些配置,作為對那些正在以華麗的方式進行響應式java的人的參考。因為我花了一個週末來解決這個問題以及其他事情。我可能會寫一篇更長的文章,講述我作為高級軟體工程師調試華麗能力問題的旅程,以及初級人員如何解決這些問題,以及在此過程中我一步一步的思考過程。
我學到了所有這些,因為我不斷問自己「為什麼它不起作用?」這一直困擾著我。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3