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 件のコメント :
コメントを投稿