はじめに

仕事で log4j を利用しているので, Eclipse での使い方を少し調べてみた.

環境

  • log4j 2.3
  • Eclipse 4.4
  • Java 1.7

log4j とは

Java で, ログを残すための便利で有名なライブラリ.

install

以下から最新版をダウンロード.

設定

適当なところに解凍後, クラスパスを通す.

Eclipse だと,

  • ツールバー > ウィンドウ > 設定
  • Java > ビルド・パス > ユーザライブラリ
  • 新規 -> Log4j と入力
  • 外部 Jar 追加 を選択
    • 以下を登録
      • log4j-core-2.x.jar
      • log4j-api-2.x.jar
      • log4j-1.x-api-2.x.jar

続いて, プロジェクトを右クリックして,

  • プロバティ > Java ビルド・パス > ライブラリータブ
  • ライブラリー追加 > ユーザライブラリ > 次へ
  • 上で作成した Log4j を追加.

Hello log4j

標準出力に log を出すことを目指す.

log4j2.xml を作成.

以下を参考に logger.xml を作成して, src 配下に配置.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

<Root level=“xxxx”>を調整することで, ログレベルを調整できる.

ログレベル

Wikipedia から引用. 以下のようにログのレベルがある.


Fatal 致命的なエラー. プログラムの異常終了 ERROR エラー. 予期しないその他の実行時エラー WARN 警告. INFO 情報. 実行時の何らかの注目すべき事象 DEBUG デバッグ用の情報 Trace トレース情報. DEBUG よりも詳細な情報


コードを作成

サンプルコード作成.

package sample;
import org.apache.log4j.Logger;

public class LoggerSample {
        public static void main (String[] args) {
        Logger logger = Logger.getLogger (LoggerSample.class.getName ());

        logger.trace ("Hello trace");
        logger.debug ("Hello debug");
        logger.info ("Hello info");
        logger.warn ("Hello warning");
        logger.error ("Hello error");
        logger.fatal ("Hello fatal");
    }

出力結果

23:57:03.111 [main] TRACE sample.LoggerSample - Hello trace
23:57:03.112 [main] DEBUG sample.LoggerSample - Hello debug
23:57:03.112 [main] INFO  sample.LoggerSample - Hello info
23:57:03.112 [main] WARN  sample.LoggerSample - Hello warning
23:57:03.112 [main] ERROR sample.LoggerSample - Hello error
23:57:03.112 [main] FATAL sample.LoggerSample - Hello fatal

Eclipse Plugin

Eclipse で log4j のログを表示させるプラグインはいくつかあるみたい.

JLV

JLV を試す. ためそうと思ったらこれは, log4j 1.x 用だったので, 1.x を入れる.

以下にしたがって設定.

カラフルに色が表示される. 検索機能も便利.

Emacs Lisp

こんなのみつけた.

text におとした log をみるモード. 自動で更新されるのもよい.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="https://jakarta.apache.org/log4j/" >

  <appender name="file" class="org.apache.log4j.FileAppender">
     <param name="File" value="./sample.log" />
     <param name="Append" value="true" />
     <param name="Encoding" value="Shift_JIS" />
     <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%m%n" />
     </layout>
  </appender>

  <root>
    <appender-ref ref="file"/>
  </root>
</log4j:configuration>

helm-swoop とかとくみあわせると, 抜群の検索効果.

JTags と組み合わせると, なんと Log からソースへジャンプできる.

BookMark