참고 : 에버노트에 작성했던 글을 옮겨서 블로그에 작성한건데 양식 유지가 안되서 읽기가 조금 안 좋네요


 

  1. 목적
    1. 서비스를 운영중에 프로세스 재 시작없이 로그 레벨을 변경해야할 경우가 있을 수 있습니다.(Dynamically modify the log level)
      1. 예) 특정 케이스 디버깅을 위해서 프로덕션에서 디버그 레벨로 변경
    2. 여러가지 방법이 있을 수 있는데, alibaba의 arthas라는 프로젝트를 이용해서 변경해보고 arhas의 사용법을 익혀봄으로써 트러블슈팅 역량을 향상해보겠습니다.
  2. 참고 링크(arthas)
    1. github
    2. onlin tutorials
    3. documentation
    4. intellij plugin

3. dzone 참고 링크


  1. arthas 설치 및 실행
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

-- 사용법 확인하고 싶으면 -h옵션
java -jar arthas-boot.jar -h

 

  1. logger command를 이용해서 로그레벨 변경 방법
    1. 주의: 로그레벨을 낮추고 확인이 완료되면 잊지말고 원복 필요
    2. logger command
-- 현재 어플리케이션의 로그 레벨확인
logger

-- search class detail
예) sc -d yourClassName

-- ROOT라는 로거의 레벨을 debug로 변경
-- logger -c 클래스로더의해시--name ROOT --level debug
예) logger -c 51081592 --name ROOT --level debug

 

샘플

  1. arthas에서 로그레벨 변경 명령어
  2. 어플리케이션에서 로그가 변경되어 출력되는 모습
    1. logger 명령어로 ERROR레벨 이상으로 변경한 결과 -> ERROR레벨 이상의 로그만 출력됨을 확인 가능

 

 

+ Recent posts