본 가이드는 fw springboot feature actuator logback 충돌 해결 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
이 설정을 보면 Actuator를 통한 로그 레벨 변경이 일부 패키지에서 불가능할 가능성이 높음.
원인을 분석하고 해결 방법을 제안해 줄게. 🚀
🔎 문제 분석
✅ 1️⃣ root 로그 레벨이 WARN으로 고정됨
xml
복사편집
<root level="warn">
root로그 레벨이WARN으로 설정되어 있음.- Actuator에서 root 로그 레벨을 변경해도
WARN이상만 출력될 가능성이 있음. root가WARN이기 때문에, 특정 패키지가 DEBUG로 설정되어도 적용되지 않을 수도 있음.
🔹 확인 방법
/actuator/loggers/root엔드포인트로 현재 root 로그 레벨 확인
sh
복사편집
curl -X GET http://localhost:8080/actuator/loggers/root
- 응답 예시
json
복사편집
{
"configuredLevel": "WARN",
"effectiveLevel": "WARN"
}
configuredLevel을 변경해도effectiveLevel이 유지된다면 root 설정이 우선 적용된 것임.
✅ 2️⃣ 특정 패키지(예: iaas, org.springframework)는 logback에서 level을 강제 지정함
xml
복사편집
<logger name="iaas" level="debug" additivity="false">
xml
복사편집
<logger name="org.springframework" level="debug" additivity="false">
- logback.xml에서 특정 패키지의 로그 레벨을 하드코딩하면 Actuator에서 변경이 불가능함.
- Actuator는 동적으로 설정을 변경하지만, logback에서
level="debug"처럼 명시하면 override가 불가함.
🔹 확인 방법
/actuator/loggers/iaas엔드포인트로 현재 설정 확인
sh
복사편집
curl -X GET http://localhost:8080/actuator/loggers/iaas
- 응답 예시
json
복사편집
{
"configuredLevel": "null",
"effectiveLevel": "DEBUG"
}
configuredLevel이null이면 Actuator에서 변경이 불가능함.level="debug"로 강제 설정되어 있어서 Actuator 변경이 적용되지 않는 상태.
🚀 해결 방법 (Actuator에서 로그 레벨 변경 가능하게 만들기)
✅ 1️⃣ root 로그 레벨을 낮추고, 특정 패키지를 Actuator로 변경 가능하도록 조정
현재 root가 WARN으로 설정되어 있어서 Actuator에서 변경이 반영되지 않을 가능성이 있음.
xml
복사편집
<root level="DEBUG">
이렇게 변경하면, Actuator에서 변경한 설정이 적용될 가능성이 높아짐.
✅ 2️⃣ 특정 패키지의 level 속성을 제거하여 Actuator에서 변경 가능하도록 함
현재 아래처럼 특정 패키지의 로그 레벨이 하드코딩되어 있어서 Actuator에서 변경할 수 없음.
xml
복사편집
<logger name="iaas" level="debug" additivity="false">
xml
복사편집
<logger name="org.springframework" level="debug" additivity="false">
➡ 이렇게 변경하면 Actuator에서 동적으로 변경 가능해짐.
xml
복사편집
<logger name="iaas" additivity="false">
<appender-ref ref="consoleAppender"/>
<appender-ref ref="dailyRollingFileAppender"/>
<appender-ref ref="overwriteFileAppender"/>
</logger>
<logger name="org.springframework" additivity="false">
<appender-ref ref="consoleAppender"/>
<appender-ref ref="dailyRollingFileAppender"/>
<appender-ref ref="overwriteFileAppender"/>
</logger>
🚀 이렇게 수정하면 Actuator에서 동적으로 로그 레벨을 변경할 수 있음.
✅ 3️⃣ Actuator 로그 변경 기능 활성화 (write: true 확인)
application.yml에서 Actuator의 loggers 엔드포인트가 쓰기 가능(write enabled) 상태인지 확인해야 함.
yaml
복사편집
management:
endpoints:
web:
exposure:
include: loggers
endpoint:
loggers:
enabled: true
write: true # ✅ 로그 레벨 변경 가능하도록 설정
write: true설정이 없으면 Actuator에서 로그 레벨 변경이 안 됨.- 운영 환경에서도 해당 설정이 적용되어 있는지 확인 필요.
🚀 최종 정리 (수정해야 할 것들)
✔ root의 로그 레벨을 낮춰서 로그 변경이 가능하도록 함
✔ logback-spring.xml에서 특정 패키지의 level="debug" 설정을 제거하여 Actuator에서 변경 가능하게 함
✔ application.yml에서 Actuator의 write: true 설정을 확인함
이렇게 수정하면 Actuator에서 로그 변경이 가능할 거야! 🚀
테스트하고 안 되는 부분 있으면 추가로 확인해볼 수 있어. 💪
Leave a Reply