Java で log4j の使ってみた (Eclipse, Emacs Viewerも)

    はじめに

    仕事で 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