2016-05-19 7 views
0

Mavenにないプロジェクトを継承しました&は依存関係のセットアップに関する文書を持っていません。私はslf4jに関連する多くのエラーを取得しています。コンパイルエラー:Loggerタイプのメソッドエラー(String、Object、Object)は、引数には適用されません

たとえば、次のコードで_logger.error()を呼び出すと、「Logger型のメソッドエラー(String、Object、Object)が引数に適用されません」というコンパイルエラーが生成されます。

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

//lines ommitted 

Logger _logger; 

//lines ommitted 
    _logger.error("getValueList|Error|valueId|{}|date|{}| current|{}|", _valueId, _date,_current); 

これを避けるには、どのslf4jジャーをクラスパスに含める必要がありますか?注意してください、私はすでにクラスパスにslf4j 1.7.5をすべて持っています&ほとんどのロギングステートメントはうまくコンパイルされますが、他のステートメントはコンパイルされません。私はこれをどのように修正するか分からない。

UPDATE - 明快

のための追加の余分なコード
+0

まあ、 '_logger'にはどのようなタイプがありますか? – Seelenvirtuose

+0

@Seelenvirtuose私はそれがタイプエラーがコンパイルエラーで判断すると思います – jthomas

+0

Logger _logger; org.slf4j.Loggerをインポートします。 org.slf4j.LoggerFactoryをインポート(&I) importsとして –

答えて

0

方法が解決しよう:私は誤って、クラスパスにSLF4J-API-1.6.6.jarが含まれています。これはslf4j-api-1.7.5.jarの代わりにリンクされていました。 slf4j-api-1.6.6.jarを削除すると、slf44のコンパイルエラーがなくなりました。

ご協力いただきありがとうございます。

0

はちょうどこのリンクドキュメントを1としてhttp://www.slf4j.org/apidocs/org/slf4j/Logger.html を参照して、logger.error方法でコードが実行される方法を3つの引数を含めるする方法はありません。 ロギングのためつ以上のオブジェクトが関与する唯一の方法は、アレイ内のこれらのオブジェクトを置くと

空隙エラー(文字列形式、 オブジェクトを参照logger.errorメソッドにパラメータとして渡すことです。 ...引数)ページ

+0

コンマで区切られたパラメータを渡すときも、varargsは機能します –

+0

私の答えを見てください。私はvarargsが1.7.xで追加されたと思います。そのため、クラスパスに1.6.6を誤って追加したため、この問題が発生しました。 –

関連する問題