Log4j 2 をとりあえず使ってみる (ConsoleAppender、FileAppender)

Log4j 2 をちょっとごにょごにょさわってみました。今回はとりあえず ConsoleAppender と FileAppender を使うサンプルとしてます。

Log4jLog4j 2 Guide - Apache Log4j 2
http://logging.apache.org/log4j/2.x/

Log4jLog4j 2 Appenders - Apache Log4j 2
http://logging.apache.org/log4j/2.x/manual/appenders.html


Log4j 2 では設定ファイルについては XMLJSONYAML、properties で書けるみたいですが、今回は XML で。

Log4j – Configuring Log4j 2 - Apache Log4j 2
http://logging.apache.org/log4j/2.x/manual/configuration.html

以下の感じです。

■ log4j2.xml

<?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>
    <File name="file" fileName="test.log">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </File>
  </Appenders>
  <Loggers>
    <!-- test.Log4jTest のロガーの設定 -->
    <Logger name="test.Log4j2Test" level="info">
      <AppenderRef ref="file"/>
    </Logger>
    <!-- ルートロガーの設定 -->
    <Root level="info">
      <AppenderRef ref="console"/>
    </Root>
  </Loggers>
</Configuration>


ログ出力させるコードは以下の感じ。

■ Log4jTest.java

package test;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4j2Test {
  private static final Logger logger = LogManager.getLogger(Log4j2Test.class);
  
  public static void main(String[] args) {
     logger.info("log4j test !!");
  }
}

■ 結果

23:26:58.203 [main] INFO  test.Log4j2Test - log4j test !! - console test ( ConsoleAppender の結果 )
23:26:58.203 [main] INFO  test.Log4j2Test - log4j test !! - file test ( FileAppender の結果 )


今回はひとまずこんなところとしておきます。以上です。

[ 環境情報 ]
Windows 7 SP1
Java SE 8 Upate 25
Log4j 2.5

※ しかし初回リリースは 2012 年と結構前なんですね・・・

Log4j – Changes - Apache Log4j 2
http://logging.apache.org/log4j/2.x/changes-report.html#a1.0-alpha1