log4j 1.2でテキストファイルにログを出力するサンプルです。
xmlの設定ファイルを使用します。
(確認環境:Eclipse 4.8,Windows10)
目次
サンプル | log4j 1.2とは |
log4j 1.2の取得方法 | |
設定ファイルの作成(log4j.xml) | |
ソースコードの作成 | |
出力ファイルの確認 |
log4j 1.2とは
- log4jは、ログを出力するライブラリです。
- 以下は、Apacheのlog4j 1.2.17のJavadocです。
http://logging.apache.org/log4j/1.2/apidocs/index.html - log4jの1.xは2015年8月にEOL(End of Life)になりました。現在はLog4j 2が推奨されています。
- log4j2のサンプルは以下を参照願います。
Java log4j2でテキストにログを出力するサンプル
log4j 1.2の取得方法
1.Mavenで取得する場合
pom.xmlの<dependencies>の間に以下のコードを追加します。
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Mavenで取得する手順は、以下を参照願います。
Eclipse Mavenでjarを取得(Java)
2.jarファイルで取得する場合
以下のサイトからlog4j-1.2.17.zipをダウンロードします。
Apache log4j 1.2のサイト
http://logging.apache.org/log4j/1.2/download.html
ダウンロードしたzipを展開して任意の場所に配置しjarファイルをクラスパスに追加します。
・log4j-1.2.17.jar
クラスパスに追加する手順は、以下を参照願います。
Eclipse jarファイルをクラスパスに設定する方法
設定ファイルの作成(log4j.xml)
eclipseの「ワークスペース」の(プロジェクト)のフォルダの直下にlog4j.xmlというファイルを作成します。
log4j.xmlに以下のコードを記述します。
<?xml version="1.0" encoding="MS932" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="Appender1" class="org.apache.log4j.FileAppender">
<param name="File" value="testlog.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-6p %m%n"/>
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="Appender1" />
</root>
</log4j:configuration>
5行目のtestlog.logは出力ファイル名です。
ログのファイル名または出力先フォルダを変更したい場合は、この箇所を修正して下さい。
例:<param name="File" value="./logs/testlog.log" />
7行目は出力レイアウトの設定です。
11行目の <level value="debug" />は、指定したログレベル以上のものが表示されます。
ログレベルの順番は、trace – debug – info – warn – error – fatalとなっています。
サンプルの例だとdebugが書かれているのでtraceは出力されません。
ソースコードの作成
テキストファイルにログを出力するコードです。
package test1;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class Test1 {
public static void main(String[] args) {
Sample s = new Sample();
s.testLog();
}
}
class Sample {
private Logger log = Logger.getLogger(Sample.class);
void testLog(){
// 設定ファイルを読み込む
DOMConfigurator.configure("log4j.xml");
String a = "テスト";
log.trace(a); // 出力なし
log.debug(a); //2016/07/21 22:50:24.975 [main] DEBUG テスト
log.info(a); //2016/07/21 22:50:24.975 [main] INFO テスト
log.warn(a); //2016/07/21 22:50:24.976 [main] WARN テスト
log.error(a); //2016/07/21 22:50:24.976 [main] ERROR テスト
log.fatal(a); //2016/07/21 22:50:24.976 [main] FATAL テスト
}
}
12行目は、Loggerクラスのインスタンスを取得しています。
16行目は、設定ファイルを読み込んでいます。
20行目以降は、ログをテキストに出力します。
出力ファイルの確認
設定ファイルに指定した場所にログファイル(testlog.log)が出力されます。
ログファイルが存在しない場合は新規に作成されます。
ログファイルが存在する場合は追記されます。
ファイルの中身は以下の通りです。
2016/07/21 22:50:24.975 [main] DEBUG テスト
2016/07/21 22:50:24.975 [main] INFO テスト
2016/07/21 22:50:24.976 [main] WARN テスト
2016/07/21 22:50:24.976 [main] ERROR テスト
2016/07/21 22:50:24.976 [main] FATAL テスト
関連の記事
Java log4j 1.2でテキストにログを出力(テキストで設定)
Java log4j 1.2でコンソールにログを出力するサンプル
Java log4j2でテキストにログを出力するサンプル
Java LogbackとSLF4jでテキストにログを出力