LoginSignup
0
0

More than 3 years have passed since last update.

SSHJ使用時のSLF4Jに関する警告メッセージを抑止する

Posted at

やりたいこと

SSHJを使用した時に出力される警告メッセージを抑止することです。

問題概要

SSHJのSSHClientクラスをnewした時に警告メッセージが出力されます。

問題詳細

SSHJのSSHClientクラスをnewした時に以下の警告メッセージが出力されます。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

警告が出力されても、SSHJは問題なく使用できます。
たぶん、ログ出力ができないだけなのではないかと思います。

解決策

まずは素直に、警告メッセージに示されているサイトを参照します。
すると、

  • "org.slf4j.impl.StaticLoggerBinder"クラスがメモリにロードできなかった時に出力されるメッセージであること
  • クラスパスに、slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar、または、logback-classic.jarのいずれか1つを配置することで問題が解決すること

が書かれています。
ということで、実行環境のクラスパスに、slf4j-nop-x.x.x.jarを配置することで警告メッセージを抑止することができました。
x.x.xの部分はバージョン番号になります。

ちなみに、EclipseのMavenプロジェクトをコンパイル/デバッグするような場合はpom.xmlに以下のように記述しておけば良さそうです。

pom.xml
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.7</version>
</dependency>

なお、上の例でバージョンに1.7.7を指定しているのは、SSHJがslf4j-api1.7.7を必要としているようだったので、そのバージョンと合わせてみました。

-- 以上--

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0