본문 바로가기
개발&프로그래밍

[SpringBoot] 로그 잘림 해결 방법 - 콘솔 / 파일 로그 길이 제한 완전 정리

by 재아군 2026. 2. 19.
반응형

안녕하세요! 재아군의 관찰인생 입니다.

Spring Boot 프로젝트를 운영하다 보면 로그가 중간에 잘려서 출력되는 문제를 한 번쯤은 겪게 됩니다.

 

특히 대용량 JSON 응답이나 StackTrace 분석 시 로그가 잘리면 원인 파악이 어려워지죠.

오늘은 Spring Boot 로그 잘림 해결 방법을 콘솔, 파일, IDE 기준으로 완전 정리해보겠습니다.


Spring Boot 로그 잘림이란?

 

Spring Boot는 기본적으로 Logback을 사용합니다.
하지만 실제 로그 잘림은 대부분 다음 원인에서 발생합니다.

  1. IDE 콘솔 출력 제한
  2. Logback 패턴 길이 제한
  3. OS 콘솔 버퍼 제한
  4. JSON 직렬화 길이 제한

📢 최신 Spring Boot 3.x에서도 기본 로깅 구조는 동일하며, Logback 설정으로 대부분 해결 가능합니다.


 

 

 

다른 도구와의 비교

구분기본 로거설정 방식로그 잘림 제어난이도
Spring Boot Logback application.yml / logback.xml 가능 쉬움
Log4j2 Log4j2 log4j2.xml 가능 중간
System.out JVM 기본 출력 없음 제한적 매우 쉬움
Docker 환경 컨테이너 로그 docker logs 버퍼 제한 있음 중간

 

 

 

설치 방법

사전 체크리스트

  • Spring Boot 2.x 이상
  • IDE 콘솔 설정 확인
  • logback-spring.xml 사용 여부 확인

OS별 설치

방법 1: logback-spring.xml 설정 (권장)

src/main/resources/logback-spring.xml

<configuration>
    <property name="LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n"/>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>
 
 

👉 %logger{50} 숫자를 늘리면 패키지명 잘림 방지 가능


방법 2: IntelliJ 콘솔 제한 해제

  1. Settings → Editor → General → Console
  2. Override console cycle buffer size 체크
  3. 값 증가 (예: 10240KB → 51200KB)

특히 IntelliJ 사용자는 콘솔 버퍼 때문에 로그가 잘리는 경우가 가장 많습니다.


사용 방법 / 기본 명령어

JSON 로그 길이 늘리기

logging:
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
 
 

Jackson 직렬화 길이 제한 해제

log.info("response = {}", objectMapper.writeValueAsString(response));
 
 

활용 시나리오 (실전 예시)

시나리오 1: 대용량 API 응답 로그 분석

log.info("response = {}", objectMapper.writeValueAsString(response));
 

✔ 해결: IDE 콘솔 버퍼 증가 + 파일 로그 병행 사용


시나리오 2: StackTrace가 중간에 잘리는 경우

logging: level: root: DEBUG
 

✔ 해결: 파일 로그로 분리 저장


시나리오 3: Docker 환경에서 로그 잘림

 
docker logs --tail 1000 container_name

✔ 해결: --tail 옵션 증가 또는 로그 드라이버 변경


트러블슈팅

문제 1: 로그가 중간에 ... 으로 표시됨

원인: IDE 콘솔 버퍼 제한

해결:

IntelliJ → Console Buffer Size 증가
 
 

문제 2: JSON 로그가 일부만 출력됨

해결:

 
logging: pattern: console: "%msg%n"

문제 3: 파일 로그도 잘림

해결:

 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <maxHistory>30</maxHistory> </rollingPolicy>

 

 

자주 묻는 질문 (FAQ)

 

Q1. Spring Boot 기본 로그 프레임워크는 무엇인가요?

A. 기본적으로 Logback을 사용합니다.

 

Q2. application.yml로 해결 가능한가요?

A. 간단한 패턴 변경은 가능하지만, 완전한 제어는 logback-spring.xml이 필요합니다.

 

Q3. 운영 환경에서는 어떻게 설정하는 게 좋나요?

A. 콘솔 로그 최소화 + 파일 로그 분리 + 로그 레벨 환경별 관리가 좋습니다.

 

Q4. StackTrace가 너무 길면 어떻게 하나요?

A. 파일 로그에 저장하고 Kibana/CloudWatch 같은 로그 수집 도구 사용을 권장합니다.

 


참고 자료


로그는 곧 시스템의 건강 상태입니다.
잘리지 않는 로그 환경을 만들어두면, 장애 대응 속도가 완전히 달라집니다.

다음 글에서는 Spring Boot 운영 환경 로그 전략을 정리해보겠습니다.


 

반응형

댓글