SpringでLog4j2
build.gradleファイルを開いて、log4j2を取り込む設定を記述する。
build.gradleの設定内容は次のとおり。
buildscript {
ext {
springBootVersion = '1.5.13.BUILD-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
compile('org.springframework.boot:spring-boot-starter-log4j2')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
build.gradleを選択したまま、コンテキストメニューを表示して、「Gradle」-「Refresh Gradle Project」をクリック。
src/main/javaを選択したまま、コンテキストメニューを表示して、「New」-「File」をクリック。
File name: に log4j2.xml を入力して「Finish」をクリック。
log4j2.xmlにログ出力の設定内容を記述する。
log4j2.xmlの設定は次のとおり。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<Properties>
<Property name="app_name">hoge</Property>
<Property name="date">%d{yyyy-MM-dd HH:mm:ss.SSS}</Property>
<Property name="daily_log">logs/app_${app_name}_%d{yyyy-MM-dd}.log</Property>
<Property name="monthly_log">logs/app_monthly_${app_name}_%d{yyyy-MM}.log</Property>
<Property name="error_daily_log">logs/app_error_${app_name}_%d{yyyy-MM-dd}.log</Property>
</Properties>
<appenders>
<Console
name="Console"
target="SYSTEM_OUT"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
</Console>
<RollingFile
name="File"
fileName="logs/app.log"
filePattern="${daily_log}.gz"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<RollingFile
name="ErrorFile"
fileName="logs/app_error.log"
filePattern="${error_daily_log}.gz"
>
<RegexFilter regex="\[ ERROR \]" />
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<RollingFile
name="MonthlyFile"
fileName="logs/app_monthly.log"
filePattern="${monthly_log}.gz"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="Console" />
<appender-ref ref="File" />
<appender-ref ref="MonthlyFile" />
<appender-ref ref="ErrorFile" />
</root>
</loggers>
</configuration>
前回の記事で作成したHogeController.javaにログ出力のコードを追加する。
SpringでHello world(Gradleでプロジェクト作成)
private static・・・、Logger.info("#index START")とimport文が追加になる。
HogeController.javaのソースは次のとおり。
package com.example.hoge;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HogeController {
private static final Logger logger = LoggerFactory.getLogger(HogeController.class);
@RequestMapping("/")
public String index() {
logger.info("#index START");
return "Hello World.";
}
}
log4j2の設定が終わったので、Springを動かしてログ出力されているかを確認する。
プロジェクトを選択したまま、メニューバーの「Run」-「Run As」-「4 Spring Boot App」をクリック。
Hello World. の表示を前回同様に確認する。
プロジェクトを選択したまま、コンテキストメニューを表示して「Refresh」をクリック。










0 件のコメント :
コメントを投稿