Java8でLoggerを使ってメッセージ表示を試してみました

仕事でLogを調査することがあったので、Logについて復習しました。
id:skrbさんの記事J2SE, v1.4 の新機能 Logging APIを参考にさせていただきました。
でちょっとJDK8とJDK7を使ってログを表示するコードを実装してみました。
・ログレベルの日本語がJDK7の時より改善されている?(JDK7では日本語と英語が混在していました)
・クラス名、メソッド名がJDK7より変わっている(クラス名はJDK7ではインナークラス、メソッド名がJDK8では「lambda$0」)

  • version

  • code1(JDK8)


Logging sample(JDK8) · GitHub

  • 実行結果1(JDK8)

  • version

  • code1(JDK7)


Log sample(by using JDK7) · GitHub

  • 実行結果1(JDK7)

それとJDK8でFunctionalInterfaceのSupplierが引数のメソッドが追加されていたので実装。
で説明があったようにmethod referenceを使った場合、遅延計算になるので実際にログを出力しない場合には、指定しているメソッドが実行されないことも確認してみました。
(遅延評価とか遅延計算とかよくわかっていないのですが、、、id:bleisさんの記事遅延評価いうなキャンペーンとかどうか - ぐるぐる~はとても参考になりました)
以下のコードでログの出力対象レベルを「INFO」にして
「INFO」「FINER」レベルのログ出力をメソッド呼出しした場合とmethod referenceを使用した場合で2回実行。
・「INFO」レベルのログは実際出力するので「logInfo」メソッドが2回実行。
・「FINER」レベルのログは出力しないので「logFiner」メソッドが1回だけ。

  • code2


Log Sample2(by using JDK8) · GitHub

  • 実行結果2(JDK8)

まだまだ勉強不足です、(涙)