Panache を使用して quarkus のリアクティブ Java で mongodb クエリログを有効にする方法

PHPz
リリース: 2024-07-17 09:52:19
オリジナル
556 人が閲覧しました

私以降の誰もがこれらの設定を簡単に見つけられるように、ここに残しておきます。

私の仕事では、Java を使用してリアクティブ スタイルでマイクロサービスを作成しています。私も mongodb を panache で使用しています。最近、クエリの 1 つが mongo compass からは完璧に機能するのに、panache では期待どおりに機能しないという問題が発生しました。そのため、panache が生成しているクエリを確認する必要がありました。

quarkus の公式ドキュメントでは、mongodb クエリを出力に記録する方法が提供されています。残念ながら、これは非リアクティブ Java でのみ機能し、ガイドにはこれについて適切に記載されていません。

リーリー

最初は、何らかの理由でプロジェクトの構成が間違っているか、構成が競合しているため、ログが表示されないのではないかと思いました。リアクティブコーディングがどのような問題なのか、考えたこともありませんでした。そこで、他の方法で問題をデバッグし、問題に対する適切な解決策を見つけました。

その後、私は少し面倒になり、なぜクエリログが機能しないのかを自問し続けてイライラしました。それから、思い当たる節があり、構成キーを注意深く見たところ、ログでカテゴリー io.quarkus.mongodb.panache.common.runtime が有効になっていることがはっきりとわかり、そのパッケージを探しに行きました。私のjetbrains IDEからそれを見つけたところ、common.runtime.CommonPanacheQueryImplと別のcommon.reactive.runtime.CommonReactivePanacheQueryImplがあることがはっきりとわかります

Folder structure of the package

それで私はそのカテゴリでフィルタリングしようとしました、そしてそれはうまくいきました:)
したがって、解決策は、このカテゴリで DEBUG を有効にするだけです。したがって、この行を application.properties に追加します

リーリー

これでログが機能するようになりました

Query logging working

ボーナス

検索中にクエリログを有効にする別の方法を見つけましたが、それはmongodbドライバーからログを記録しています。有効にするには、これを application.properties に追加するだけです

リーリー

結果は次のようになります。dbからの結果も出力されます。

MongoDB driver logging

panache でリアクティブ Java を実行している人への参考として、これらの設定をここに投稿しようと思いました。私は週末の 1 つをこれや他のことを考えるのに費やしました。おそらく、シニア ソフトウェア エンジニアとしての、万能な機能の問題をデバッグするための道のりと、後輩がこれらの問題をどのようにナビゲートするか、そしてその際の私のステップバイステップの思考プロセスについて、さらに長い投稿をする予定です。

私がこれらすべてを学んだのは、「なぜうまくいかないのか?」と自分自身に問い続けたからです。そしてそれは私を悩ませ続けました。

参考文献

  1. 自分のメモ
  2. Quarkus ドキュメント
  3. github ディスカッション

以上がPanache を使用して quarkus のリアクティブ Java で mongodb クエリログを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!