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

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

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

私の仕事では、リアクティブ スタイルの Java を使用してマイクロサービスを作成しています。私も mongodb を panache で使用しています。最近、クエリの 1 つが mongo compass からは完璧に機能していましたが、panache では期待どおりに機能しなかったという問題がありました。そのため、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 があることがはっきりとわかります。

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

panache でリアクティブ Java を実行している人への参考として、これらの構成をここに投稿しようと思いました。私は週末の 1 つをこれや他のことを考えるのに費やしました。おそらく、上級ソフトウェア エンジニアとしての万能機能の問題をデバッグするための長い記事を作成する予定です。また、後輩がこれらの問題にどのように対処するか、また、その際の私のステップバイステップの思考プロセスについても説明します。

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

参考文献

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

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

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