LoginSignup
29
29

More than 5 years have passed since last update.

log4j2 を Webアプリケーションで使う場合の配置と設定

Last updated at Posted at 2015-07-06

自分用メモ。ログの設定は、一回設定したらその後はあまり触らないので、細かいことを忘れてしまい、何度も同じドキュメントを参照するハメになっているので。

jar ファイル

最低限、以下のファイルが必要。

log4j-api-2.3.jar
log4j-core-2.3.jar
log4j-web-2.3.jar
(2.3 はこれを書いている時点の最新バージョン)

log4j2 の設定ファイルの配置

設定ファイルはXML形式のみ記述(json形式とかは公式ドキュメント参照)。log4j 1.x系のproperties形式はなくなった。web.xml に設定ファイルの位置を記述する必要がある。
なお、以下のやり方はServlet API 3.0以上の場合。

WEB-INF の直下にファイルを配置する場合(これが最も楽)

ファイル名は log4j2.xml または log4j2-[webappname].xml とすれば、web.xml への設定は不要。
[webappname] の部分には、Webアプリ名を入れる。ファイル名は必ず "log4j2" で始める必要がある。

Webアプリのルート以下のどこかに配置する場合

web.xml
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>/config/log-config.xml</param-value>
</context-param>

<param-value> には、Webアプリのルート以下のパスを書く。ファイル名は適当に。

ファイルパスを指定する場合

web.xml
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>file:///sample/log-config.xml</param-value>
</context-param>

<param-value> の値を file:/// で始めて、ファイル名は適当に。

クラスパスを指定する場合

web.xml
<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>classpath:/config/log-config.xml</param-value>
</context-param>

<param-value> の値を classpath: で始めて、クラスパス上のパスを記述する。

ログレベル

  • ALL: 全てのレベルを出力
  • OFF: ログを出力しない

あとは、ログレベルが高い(と言っていいのか?下に行くほど詳細)順に、

  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • TRACE

ログレベルを指定しない場合は、ERROR がデフォルトとなる。

設定ファイルの書き方(XML形式)

こんな感じで(詳細は別でまとめた->log4j2の設定ファイル(XML))。ファイルエンコーディングはUTF-8とする。

log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="off">

    <!-- AppenterやLoggerで使用するプロパティを定義する -->
    <Properties>
        <Property name="...">hoge</Property>
        <Property name="..." value="..." />
    </Properties>

    <!-- ログの出力先と出力フォーマットを設定する -->
    <Appenders>
    </Appenders>

    <!-- パッケージごとにAppenderとログレベルを組み合わせる -->
    <Loggers>
        <Logger ...>
        <Logger ...>
    </Loggers>
</Configuration>

参照したURL

29
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
29