참고 : 에버노트에 작성했던 글을 옮겨서 블로그에 작성한건데 양식 유지가 안되서 읽기가 조금 안 좋네요
- 목적
- 서비스를 운영중에 프로세스 재 시작없이 로그 레벨을 변경해야할 경우가 있을 수 있습니다.(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레벨 이상의 로그만 출력됨을 확인 가능
'JAVA > 트러블슈팅' 카테고리의 다른 글
AWS의 오류 재 시도 횟수 및 지수 백오프(or MSA에서 실패 재 시도) (0) | 2019.12.16 |
---|---|
online thread dump analyzer (0) | 2019.08.20 |
JEP 307: Parallel Full GC for G1 에 대해서 - JDK 10에서 변경사항 (0) | 2019.02.01 |
Tomcat에서 SecureRandom 처리 문제로 시작이 느린 이슈 처리 (0) | 2018.10.02 |