JAVA/트러블슈팅
alibaba의 arthas로 재시작없이 running 중인 어플리케이션의 logback 로그 레벨 변경하기
달사자!
2021. 4. 29. 23:39
참고 : 에버노트에 작성했던 글을 옮겨서 블로그에 작성한건데 양식 유지가 안되서 읽기가 조금 안 좋네요
- 목적
- 서비스를 운영중에 프로세스 재 시작없이 로그 레벨을 변경해야할 경우가 있을 수 있습니다.(Dynamically modify the log level)
- 예) 특정 케이스 디버깅을 위해서 프로덕션에서 디버그 레벨로 변경
- 여러가지 방법이 있을 수 있는데, alibaba의 arthas라는 프로젝트를 이용해서 변경해보고 arhas의 사용법을 익혀봄으로써 트러블슈팅 역량을 향상해보겠습니다.
- 참고 링크(arthas)
3. dzone 참고 링크
- arthas 설치 및 실행
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
-- 사용법 확인하고 싶으면 -h옵션
java -jar arthas-boot.jar -h
- logger command를 이용해서 로그레벨 변경 방법
- 주의: 로그레벨을 낮추고 확인이 완료되면 잊지말고 원복 필요
- logger command
-- 현재 어플리케이션의 로그 레벨확인
logger
-- search class detail
예) sc -d yourClassName
-- ROOT라는 로거의 레벨을 debug로 변경
-- logger -c 클래스로더의해시--name ROOT --level debug
예) logger -c 51081592 --name ROOT --level debug
샘플
- arthas에서 로그레벨 변경 명령어
- 어플리케이션에서 로그가 변경되어 출력되는 모습
- logger 명령어로 ERROR레벨 이상으로 변경한 결과 -> ERROR레벨 이상의 로그만 출력됨을 확인 가능