18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GAE/Jで謎のSLF4JなWARNを退治する

Last updated at Posted at 2016-02-18

GAE/Jなプロジェクトで謎のWANRがログに出ていました。

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

致命的なエラーでは無いようなのですが、それなりの頻度で出るので退治します。
上記のエラーでググると以下のような情報がヒットします。
http://stackoverflow.com/questions/7421612/slf4j-failed-to-load-class-org-slf4j-impl-staticloggerbinder

ようするに、ログ出力ライブラリ SLF4J のモジュールが足りないようです。

このプロジェクトではGAE/JからiOSのPUSH通知を行なうために Java Apple Push Notification Service Providerを使っていますが、このライブラリの中でSLF4Jを使っているようです。

プロジェクトのpom.xmlを見てみると 上記のjava-apnsの記述があり、Eclipseの参照ライブラリを見るとslf4j-api-1.7.2.jarはありますが、どうやらslf4j-log4j12がないようなのでpom.xmlに以下の定義を追加してみます。

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.2</version>
</dependency>

上記の変更を反映してからサイドGAEにアップしてログを確認してみます。

WARN No appenders could be found for logger (xxx.xxx.xxx.Xxx).
WARN Please initialize the log4j system properly.

なんか違うWARNに変わりましたorz

気を取り直して上記のWARNをググってみました。
http://d.hatena.ne.jp/learn/20100108/p1

要するに上記のJARファイルを追加したことにより、ログを出力しようとして、log4jの定義が無いぞと怒られているようです

とはいえ、今回はGAEなのでlog4j.propertiesがありません。

GAEのログ設定は

logging.properties

になりますので以下の定義を追加してみます。

#APNs Log4j
log4j.rootLogger=FINEST, console
log4j.appender.null=org.apache.log4j.varia.NullAppender

上記の設定を追加してようやくWARNが出なくなりました。

地味にここまでたどり着くのに2時間以上使いましたorz

18
13
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
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?