반응형
기본적으로 Spring Boot 애플리케이션에서 'Starter'를 사용하는 경우 Logback 프레임 워크가 로깅에 사용됩니다.
이 글에서는 Spring 부팅 애플리케이션에서 log4j 2 프레임 워크를 설정하는 방법을 배우게 될 것이다.
이 예제에 사용 된 도구 및 기술은 다음과 같습니다.
- Spring Boot 1.5.8.RELEASE
- Log4j 2.7
- Maven 3.5.2
- Eclipse Neon.3 (4.6.3)
예를 보자 ...
프로젝트 구조
다음과 같은 프로젝트 구조를 검토하십시오.
관련 - 이클립스 IDE에서 메이븐 프로젝트를 만드는 방법 .
Jar dependencies
우리가 알고있는 것처럼 기본적으로 의존 관계 관리를 위해 Starter 를 사용하는 경우 Logback이 로깅에 사용됩니다 . 스프링 부트 응용 프로그램에서 log4j 2를 사용하려면 Logback을 제외시킨 다음 log4j 2 Starter 를 다음과 같이 포함시켜야 합니다.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.boraji.tutorial.springboot</groupId>
<artifactId>spring-boot-log4j2-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Log4j 2 구성
src/main/resources
폴더안에 log4j2.xml생성 후 파일을 그 안에 넣고, 다음과 같은 코드를 작성합니다.
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<!-- Console Appender -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!-- File Appender -->
<File name="File" fileName="d:/app.log">
<PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
</File>
</Appenders>
<Loggers>
<!-- Log everything in custom package -->
<Logger name="com.boraji.tutorial.springboot" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="File" />
</Logger>
<!-- Log everything in Spring Boot -->
<Logger name="org.springframework.boot" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="File" />
</Logger>
<!-- Log everything in Spring Core -->
<Logger name="org.springframework.core" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="File" />
</Logger>
<Root level="error">
<AppenderRef ref="Console" />
<AppenderRef ref="File" />
</Root>
</Loggers>
</Configuration>
Run application
주석으로 @SpringBootApplication
주석이 달린 메인 클래스를 작성 하여 log4j 2 구성을 다음과 같이 테스트하십시오.
MainApp.java
package com.boraji.tutorial.springboot;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApp {
private static Logger logger = LogManager.getLogger(MainApp.class);
public static void main(String[] args) {
logger.info("Starting Spring Boot application..");
SpringApplication app = new SpringApplication(MainApp.class);
app.run(args);
}
}
를 실행하면 MainApp.java
콘솔 출력은 다음과 같이 보입니다.
소스 다운로드
spring-boot-log4j2-example.zip 7.21 KB
반응형
'JAVA/SPRING > SPRING-BOOT' 카테고리의 다른 글
Spring Boot RESTFul Web Service Example – GET/POST/PUT/PATCH/DELETE (0) | 2018.02.01 |
---|---|
[Spring Boot]log4j2 RollingFileAppender 튜토리얼 (0) | 2017.12.05 |
[Spring Boot]Spring MVC 웹 튜토리얼 (0) | 2017.12.05 |
스프링 부트 샘플 git 모음 (0) | 2017.12.05 |
[SFTP] Spring-boot 에서 spring-integration-sftp 사용하기 (1) | 2017.12.01 |