Skip to content

Commit 3b9d939

Browse files
committed
Update SpringBoot Post " Spring Boot에서 로그를 관리하는 방법 - Logback 구조와 설정 정리 "
1 parent 2b6c2ff commit 3b9d939

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

_posts/2024-07-15-SpringBoot-Logback.md

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ Spring Boot에서는 반드시 `logback-spring.xml` 또는 `logback-xxx-spring.x
113113

114114
해당 파일은 `resources` 디렉터리에 위치시키면 된다.
115115

116-
> 파일 구조 예시
116+
> 📁 파일 구조 예시
117117
118118
```markdown
119119
src/
@@ -122,7 +122,7 @@ src/
122122
└── logback-spring.xml
123123
```
124124

125-
> logback-spring.xml 예시
125+
### logback-spring.xml 구성 예시
126126

127127
```xml
128128
<?xml version="1.0" encoding="UTF-8" ?>
@@ -145,20 +145,14 @@ src/
145145
</encoder>
146146
</appender>
147147

148-
<!-- 파일 로그 Appender -->
148+
<!-- 파일 로그 Appender -->
149149
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
150150
<encoder>
151151
<pattern>${FILE_LOG_PATTERN}</pattern>
152152
</encoder>
153-
<!-- RollingPolicy: 로그 파일의 크기 증가로 인한 가독성 저하를 방지하기 위한 분할 전략 -->
154-
<!-- SizeAndTimeBasedRollingPolicy: 로그 파일을 시간과 크기 기준으로 순차적으로 분할 및 보관하는 정책 -->
155153
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
156-
<!-- 로그 파일명 패턴 -->
157-
<!-- 날짜별로 기록되며 maxFileSize를 넘기면 인덱스(i)를 증가시켜 새로운 이름의 로그파일에 기록을 이어간다 -->
158-
<fileNamePattern>./log/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
159-
<!-- 최대 파일 사이즈 -->
154+
<fileNamePattern>./logs/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
160155
<maxFileSize>100MB</maxFileSize>
161-
<!-- 최대 보관 일수 -->
162156
<maxHistory>30</maxHistory>
163157
</rollingPolicy>
164158
</appender>
@@ -176,6 +170,30 @@ src/
176170
</configuration>
177171
```
178172

173+
파일 로그는 시스템 운영에 있어 핵심적인 정보 기록 수단이다.
174+
175+
특히 운영 환경에서는 **운영 환경에서는 로그 파일이 무한히 누적되는 것을 방지**하기 위해, **시간 및 크기 기준의 롤링 전략을 적용**하는 것이 중요하다.
176+
177+
> 주요 구성 요소
178+
179+
* `RollingPolicy`: 로그 파일을 일정 기준으로 분할해 가독성과 유지 관리성을 확보하는 전략
180+
181+
* `SizeAndTimeBasedRollingPolicy`: 시간(%d)과 크기(%i)를 기준으로 로그 파일을 순차적으로 분할 및 보관
182+
183+
* `fileNamePattern`: 로그 파일 이름 형식. 날짜별(`%d`)로 생성되며, 크기 초과 시 인덱스(`%i`)를 붙여 분할 (e.g. 2024-07-15.0.log) (운영 환경에서는 **절대 경로**를 권장한다.)
184+
185+
* `maxFileSize`: 단일 로그 파일의 최대 크기 (초과 시 새로운 파일 생성)
186+
187+
* `maxHistory`: 로그 파일의 최대 보관 기간 (지정 일수 초과 시 자동 삭제)
188+
189+
예를 들어 `./logs/2024-07-15.0.log`, `./logs/2024-07-15.1.log` 와 같은 형태로 저장되며,
190+
191+
**100MB** 단위로 분할되고, **30일간** 보관된 후 자동으로 삭제된다.
192+
193+
이러한 설정을 통해 효율적인 로그 관리로 시스템 안정성과 운영 편의성을 함께 확보할 수 있다.
194+
195+
## 마무리
196+
179197
이와 같은 방식으로 `logback-spring.xml` 한 개의 파일만으로도
180198
환경(profile)에 따라 유연한 설정이 가능하고, 콘솔 및 파일 로그를 분리해 효율적으로 관리할 수 있다.
181199

0 commit comments

Comments
 (0)