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