前回は、log4j2のファイルにxmlファイルを利用していたが、今回はlog4j2のファイルにymlを利用してみたので、そのサンプルプログラムを共有する。
前提条件
下記記事の実装が完了していること。
Spring BootのWEB画面上でlog4j2を利用してみた今回は、log4j2という、log4jの後継でパフォーマンスが大幅に改善されたライブラリを利用してコンソールとファイルにログ出力を行って...
サンプルプログラムの内容
今回のサンプルプログラムの構成は以下の通り。

なお、上記の赤枠のうち、「log4j2.yml」が新規で作成したプログラムで、「build.gradle」は変更したプログラムとなる。
build.gradleの内容は以下の通り。log4j2にymlを利用できるよう、「jackson-dataformat-yaml」「jackson-core」「jackson-databind」を追加している。
plugins {
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
configurations {
//log4j2を利用するため、Spring BootデフォルトのLogbackを利用しないよう設定
all*.exclude module : 'spring-boot-starter-logging'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
compile files('lib/ojdbc6.jar')
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1'
compile group: 'org.springframework.data', name: 'spring-data-commons-core', version: '1.1.0.RELEASE'
//log4j2を利用するための設定
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.12.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.1'
//AOPを利用するための設定
implementation 'org.springframework.boot:spring-boot-starter-aop'
//log4j2の設定でymlファイルを利用するための設定
compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.10.1'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.1'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.10.1'
}
株式会社ベアフォスターホールディングスでスキルチェンジできました私はこれまで、Javaを中心としたシステム開発を行ってきましたが、将来的には、Pythonを利用したAI(人工知能)開発を行いたいと思う...
log4j2.ymlの内容は以下の通り。前提条件の記事の「log4j2.xml」と同じ内容で、「log4j2.yml」に記載している。
Configuration:
status: OFF
Appenders:
# コンソールログ出力設定
Console:
name: Console
target: SYSTEM_OUT
PatternLayout:
Pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
# ログファイル出力設定
File:
name: LogFile
fileName: C:/work/logs/demo.log
PatternLayout:
Pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
Loggers:
# コンソールとファイルにログ出力をするための設定
Logger:
name: com.example.demo
level: debug
additivity: false
# 複数のAppenderRefを紐付けるには先頭に「-」を付与
AppenderRef:
- ref: Console
- ref: LogFile
その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-log4j2-yml/demo
サンプルプログラムの実行結果
下記記事の「サンプルプログラムの実行結果」と同じ結果となる。
Spring BootのWEB画面上でlog4j2を利用してみた今回は、log4j2という、log4jの後継でパフォーマンスが大幅に改善されたライブラリを利用してコンソールとファイルにログ出力を行って...
要点まとめ
- log4j2でymlを利用できるようにするには、build.gradleにライブラリ「jackson-dataformat-yaml」「jackson-core」「jackson-databind」を追加し、log4j2.xmlと同じ内容をymlファイルに記載すればよい。



