前回は、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」を追加している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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」に記載している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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ファイルに記載すればよい。