はじめに
仕事で log4j を利用しているので, Eclipse での使い方を少し調べてみた.
環境
- log4j 2.3
- Eclipse 4.4
- Java 1.7
log4j とは
Java で, ログを残すための便利で有名なライブラリ.
-
Log4j 2 Guide - Apache Log4j 2
log4j は バージョンが 1.x と 2.x がある. 新しい 2.x を試す.
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 からソースへジャンプできる.
- jtags - Emacs package for editing Java | SourceForge.net
- jtags - Emacs minor mode for editing and browsing Java source code