2015-12-06 19 views
9

DropWizardを出力ファイルに記録しようとしています。ファイルは作成されていますが、何も書き込まれていません。DropWizardアプリケーションがconfiguration.ymlのログ設定を使用していない

実際には、提供された.ymlファイルの設定が使用されていないようです。

私はまた、彼らが関連している場合ではないことを確認、起動時に次の警告を取得しています:私はピックアップにdropwizard起動時に提供さYMLにおけるログの設定を取得することができますし、私はどのように把握することができますどのように

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Users/conor/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Users/conor/.m2/repository/com/conor/project/project-common/0.1-SNAPSHOT/project-common-0.1-SNAPSHOT.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 

を現在の設定はどこから来ていますか?ありがとう。次のように

UPDATE ::

私はDropWizard v0.9.1と私のロギング設定を実行していますが次のとおりです。

# Logging settings. 
logging: 

    # The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL. 
    level: TRACE 

    # Logger-specific levels. 
    loggers: 

#  Sets the level for 'com.example.app' to DEBUG. 
    io.dropwizard: INFO 

#  Redirects SQL logs to a separate file 
    org.hibernate.SQL: 
     level: DEBUG 

# Logback's Time Based Rolling Policy - archivedLogFilenamePattern: /tmp/application-%d{yyyy-MM-dd}.log.gz 
# Logback's Size and Time Based Rolling Policy - archivedLogFilenamePattern: /tmp/application-%d{yyyy-MM-dd}-%i.log.gz 
# Logback's Fixed Window Rolling Policy - archivedLogFilenamePattern: /tmp/application-%i.log.gz 

    appenders: 
    - type: console 
    - type: file 
     threshold: DEBUG 
     logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" 
     currentLogFilename: output/logs/dropwizard.txt 
     archivedLogFilenamePattern: output/logs/dropwizard-%d{yyyy-MM-dd}-%i.txt.gz 
     archivedFileCount: 10 
     timeZone: UTC 
     maxFileSize: 10MB 
+0

ロギングの設定を共有することはできますか? – dkulkarni

+0

そしてdropwizardのバージョン – pandaadb

+0

こんにちは、私は多くの情報を追加しました。ありがとう。 – conor

答えて

0

例外から、私はあなたが両方のクラスにlogbackの古典の二つの異なるバージョンを使用していると思います紛争を引き起こす経路。 2回含まれているが異なるバージョンを含むジャーを見つけて、それらの1つを削除してみてください。あなたは、依存関係を管理するためにMavenを使用している場合は、タグ

<exclusions> 
     <exclusion> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>the version you want to remove</version> 
    </exclusion> 
    </exclusions> 
4

を使用してjarファイルを除外するこれは典型的なSLF4J結合の問題のように見え、簡単に解決されます。まず、URL provided with the warningの関連セクションを参照してください。:

SLF4Jが発する警告は、それだけです。警告です。複数のバインディングが存在する場合でも、SLF4Jは1つのロギングフレームワーク/実装を選択し、とバインドします。 SLF4Jがバインディングを選択する方法は、JVMによって決定され、すべての実用的な目的のために、はランダムであるとみなされるべきです。バージョン1.6.6以降、SLF4Jは実際にバインドされているフレームワーク/実装クラスの名前を付けます。 ライブラリやフレームワークなどの組み込みコンポーネントは、SLF4Jバインディングに依存関係を宣言してはならず、slf4j-apiのみに依存する必要があります。ライブラリがSLF4Jバインディングにコンパイル時の依存関係を宣言すると、そのバインディングがエンドユーザに強制され、SLF4Jの目的が無効になります。コンパイル時にSLF4Jバインディングに依存することを宣言している埋め込みコンポーネントを見つけたら、上記のコンポーネント/ライブラリの作成者に連絡して、の方法でに修正を依頼してください。

結合選択はランダムであるので、私の推測では、project-commonSLF4J依存性がlogback-classicから意図した1、dropwizardの推移依存性を拘束していないされていることです。 Maven pomファイルのproject-commonにあるものを除外するか、コードにproject-commonへのアクセス権がある場合は、pomファイルからコードを削除してください(リンク先のWebページが提案するように) 。

関連する問題