SpringBoot
slf4j + Logback
slf4j 와 logback 에 대한 개념은 이전 글에서 확인하시고요.
2021.07.03 - [Java] - [SLF4J] slf4j 알고가기 + Logback
이 글에서는 실제 spring boot project 에 적용해서 테스트 해보겠습니다.
이전 글에서 진행한 프로젝트의 연속입니다.
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (1) 프로젝트 생성
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (2) JSON 형식 리턴
1. dependency 추가
build.gradle 의 dependencies 에 아래 두줄을 추가하고 저장!
// slf4j & logback
implementation('org.slf4j:jcl-over-slf4j')
implementation('ch.qos.logback:logback-classic')
그리고 build.gradle 파일에서 우클릭 > Gradle > Refresh.. 클릭
2. logback 설정
아래 경로에 logback-spring.xml 파일을 생성하고 다음과 같이 작성합니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
<그 외 설정은 이전 글 참고>
3. 사용
log 에 빨간줄이 떴네요.
Project and External Dependencies 를 확장하고 lombok-{version}.jar 를 찾습니다.
jar 파일에서 우클릭 후 Run As -> Java Application 클릭.
Proceed 버튼 클릭
IDEs 를 Scan 할 동안 기다립니다.
Install / Update 를 누릅니다.
누르자마자 아래 화면이 뜨네요.
이클립스를 재시작하고 프로젝트를 rebuild 하라네요.
이클립스를 재시작합니다. File -> Restart
전 빌드를 auto 로 해놔서,
그냥 Clean 해봅니다.
엑스박스가 사라졌습니다.
앱을 실행해보고 localhost:8000/info 를 호출해봅니다.
로그가 찍혔습니다.
로그 설정파일에서 Level 을 바꿔보죠.
저장 후 다시 호출
info 만 잘 찍히네요.
File 저장
logback-spring.xml 파일을 바꿔보겠습니다.
- 콘솔에는 모든 log 출력
- info 이상만 파일로 출력
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n</pattern>
</encoder>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<file>log.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>log-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%-5level] %d{HH:mm:ss.SSS} %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROLLING"/>
</root>
</configuration>
그리고 실행 해보면,
project root 에 파일이 생겼네요.
log file path 변경.
그리고 다시 호출~
project 우클릭 -> Refresh 해보면 나옵니다.
일자별로 로그파일이 롤링되니까 내일이면 file name 이 변경된게 생기겠네요.
이상 slf4j 와 logback 을 기본으로 사용해봤습니다~
Spring Boot Tutorial 시리즈
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (1) 프로젝트 생성
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (2) JSON 형식 리턴
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (3) Log (slf4j+logback)
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (4) Service 생성 (의존성 주입)
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (5.1) MySQL + JDBC Template. 1
- 2021.07.05 - [Java] - [SpringBoot] RestApi 만들기 (5.2) DBCP - HikariCP
- 2021.07.08 - [Java] - [SpringBoot] RestApi 만들기 (5.3) jdbcTemplate - Select
- 2021.07.10 - [Java] - [SpringBoot] RestApi 만들기 (5.4) GetMapping, PostMapping
- 2021.07.10 - [Java] - [SpringBoot] RestApi 만들기 (5.5) jdbcTemplate - Insert, Update, Delete
- 2021.07.11 - [Java] - [SpringBoot] RestApi 만들기 (6) File Upload / Download / List
Spring Boot Tutorial 부록
- 2021.07.02 - [Java] - [eclipse] 이클립스 설치, STS(Spring Tools 4) 설치
- 2021.07.04 - [Java] - [SpringBoot] MyBatis 보다 Spring JDBC 를 사용해야 하는 이유
- 2021.06.19 - [Java] - [Spring-boot] 시작하기 전 알아야 할 것들
- 2021.06.19 - [Java] - [Spring-boot] 수동으로 설정 초기화
- 2021.07.04 - [Java] - Eclipse 에 groovy 설치 하기
- 2021.07.02 - [Java] - [eclipse] 이클립스 설치, STS(Spring Tools 4) 설치
- 2021.07.07 - [Java] - [SpringBoot] Controller 에 Route 적용 (RequestMapping)
To be continue...
'Java' 카테고리의 다른 글
[SpringBoot] MyBatis 보다 Spring JDBC 를 사용해야 하는 이유 (0) | 2021.07.04 |
---|---|
[SpringBoot] RestApi 만들기 (4) Service 생성 (의존성 주입) (4) | 2021.07.04 |
[SLF4J] slf4j 알고가기 + Logback (0) | 2021.07.03 |
[SpringBoot] RestApi 만들기 (2) JSON 형식 리턴 (2) | 2021.07.03 |
[SpringBoot] RestApi 만들기 (1) 프로젝트 생성 (4) | 2021.07.03 |
댓글