はじめに
今回は、Javaのログ出力用ライブラリの一つである「log4j 2」について勉強したことを記載していきたいと思います。
前提条件
JavaのMavenプロジェクトで適用するために、以下記事を参照にMavenプロジェクトを作成します。
【VSCodeの環境構築】
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)
【Mavenプロジェクト作成】
【VSCode】Mavenプロジェクトのjarファイル作成方法について – SEもりのLog (selifemorizo.com)
log4j 2の設定
pom.xmlに設定
「dependencies」に以下設定を追加します。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.23.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.23.0</version>
</dependency>
プロジェクトに適用されていることを確認する
左下のプロジェクトにlog4jのライブラリが追加されていることを確認します。
ない場合は再ビルドしてみてください。
log4j2.xmlを作成する
「src/main/resources」フォルダ配下に「log4j2.xml」ファイルを作成します。
log4j2.xmlの内容を記述する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<Configuration>
<Properties>
<!-- %d:日時 -->
<!-- %t:動作中の処理名称 -->
<!-- %-6p:ログレベル名称 -->
<!-- %c{x}:実行パッケージ・クラス名称 -->
<!-- %m:ログメッセージ -->
<!-- %n:改行 -->
<Property name="format">%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-6p %c{10} %m%n</Property>
<Property name="logfile">./log/log.log</Property>
<Property name="logfile-archive">./log/log_%d{yyyy-MM-dd}-%i.log</Property>
</Properties>
<Appenders>
<!-- コンソール出力設定 -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout>
<pattern>${format}</pattern>
</PatternLayout>
</Console>
<!-- ファイル出力設定 -->
<RollingFile name="setlogfile" append="true" fileName="${logfile}"
filePattern="${logfile-archive}">
<PatternLayout>
<pattern>${format}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<!-- trace以上のログはコンソールに出力する -->
<Root level="trace">
<AppenderRef ref="Console" />
<AppenderRef ref="setlogfile" />
</Root>
</Loggers>
</Configuration>
ログ出力コードを書いてみる
package com.example;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class App {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Logger logger = LogManager.getLogger();
logger.trace("traceメッセージ");
logger.debug("debugメッセージ");
logger.info("infoメッセージ");
logger.warn("warnメッセージ");
logger.error("errorメッセージ");
}
}
実行確認
コンソール
コンソール上で出力されることを確認
2024/05/11 19:56:49.850 [main] TRACE com.example.App traceメッセージ
2024/05/11 19:56:49.850 [main] DEBUG com.example.App debugメッセージ
2024/05/11 19:56:49.850 [main] INFO com.example.App infoメッセージ
2024/05/11 19:56:49.850 [main] WARN com.example.App warnメッセージ
2024/05/11 19:56:49.850 [main] ERROR com.example.App errorメッセージ
ファイルが出力されることを確認
logファイルが出力されていることを確認
ドキュメント
【公式サイト】
Apache Log4j :: Apache Log4j
最後に
以上、ログになります。
これからも継続していきましょう!!
コメント