2016-08-30 10 views
4

SpringブートアプリケーションですべてのMongoDBクエリをログに記録できますか?私はこれを試みた:SpringブートでMongoDBクエリをログする

logging.level.org.springframework.data.document.mongodb=INFO 
log4j.category.org.springframework.data.document.mongodb=INFO 

しかし、それは動作しませんでした。

+1

ログレベルをDEBUGに変更して試してください。また、あなたが特に見ているクラスを教えてください。 – notionquest

答えて

5

この方法はもう少し長くなりますが、の方がはるかに多くなります。我々は、春のブート管理サーバーと呼ばれるツールを使用するつもりです。

  1. アノテーション@EnableAdminServerを使って春のブート管理サーバーであるためにあなたのアプリを有効にいくつかの依存関係

    <!--Dependency for registering your app as a Spring Boot Admin Server--> 
    <dependency> 
        <groupId>de.codecentric</groupId> 
        <artifactId>spring-boot-admin-server</artifactId> 
        <version>1.3.3</version> 
    </dependency> 
    
    <!--Provide a nice looking ui--> 
    <dependency> 
        <groupId>de.codecentric</groupId> 
        <artifactId>spring-boot-admin-server-ui</artifactId> 
        <version>1.3.3</version> 
    </dependency> 
    
    <!--Dependency for registering your app as a Spring Boot Admin Client--> 
    <dependency> 
        <groupId>de.codecentric</groupId> 
        <artifactId>spring-boot-admin-starter-client</artifactId> 
        <version>1.3.0</version> 
    </dependency> 
    <dependency> 
         <groupId>org.jolokia</groupId> 
         <artifactId>jolokia-core</artifactId> 
    </dependency> 
    
  2. を含める必要がありまず。で

    @SpringBootApplication 
    @EnableAdminServer 
    public class Application { 
        public static void main(String[] args) { 
         // ... your code as before ... 
        } 
    } 
    
  3. あなたapplication.properties追加し、次の

    はまだあなたのアプリへの

    spring.boot.admin.url=http://localhost:8031 
    

    に指示春のブート管理サーバである春のブート管理サーバーにアプリを登録しますクライアントを見つける

    spring.boot.admin.client.service-url=http://localhost:8031 
    spring.boot.admin.client.management-url=http://localhost:8031 
    spring.boot.admin.client.health-url=http://localhost:8031/health 
    
  4. logback.xmlに次の行を追加してください:<jmxConfigurator/>これにより、JMXを介したログバックの設定が可能になります。詳細情報here

...とあなたが行われて出来上がり。実行時にロガーのデバッグレベルを変更できるようになりました。

i。あなたのSpring Boot Admin ServerのURLにアクセスしてください。ここ(http:/localhost:8031)です。

ii。登録されたアプリケーション(クライアント)の一覧がホームページに表示されます。

iii。登録されたクライアントに対してDetailsをクリックすると、別のページに移動します。

iv。アプリケーションに登録されているすべてのロガーを一覧表示するLoggingタブをクリックします。

v。ログレベルを変更すると、実行時にログレベルが変更されます。ここであなたは、MongoDBのクエリを参照してくださいだけでMongoTemplateを探してDEBUGにログレベルを変更したい場合は

Change logging levels at runtime

は、あなたの質問に答えるために期待するものの抜粋です。

+3

こんにちはdownvoter、親切にstackoverflowコミュニティと共有する理由投票した。それは答えを改善するのに役立ちます。 – Kihats

1

は、このいずれかを試してみてください。

ちょうどあなたのアプリケーションに次の行を追加します。プロパティファイルを開き、MongoRepositoryクエリを実行した後にコンソール出力を確認してください。

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG 
+0

これは質問に対する答えを提供するかもしれませんが、いくつかの説明が必要です。このソリューションがどのように、なぜこのソリューションが機能するのか、いくつかの説明で質問を更新してください。 –

+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は、あなたの質を改善するのに本当に役立ちます役職。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 –

関連する問題