트러블슈팅

로그 확인하기

SonarQube 서버를 설치하는 과정(혹은 다른 과정)에서 문제가 발생하는 경우, 가장 먼저 서버 로그를 확인합니다. SonarQube 서버 로그는 $SONARQUBE_HOME/logs 디렉토리에 저장됩니다:

  • sonar.log - 메인 프로세스 로그. 서버 시작 및 종료와 관련된 일반적인 로그를 저장합니다. 서버의 전체적인 상태에 관한 정보를 제공하나 보다 세부적인 정보를 확인하기 위해서는 다른 로그 파일을 확인하십시오.
  • web.log - 초기 데이터베이스 컨넥션, 데이터베이스 마이그레이션 및 재인덱싱, HTTP 요청 처리에 관한 로그를 저장합니다. 해당 HTTP 요청과 과련된 데이터베이스 및 서치 엔진 로그도 함께 저장합니다.
  • ce.log - 백그라운드 태스크 처리 및 해당 태스크와 관련된 데이터베이스, 검색 엔진 로그를 저장합니다.
  • es.log - 엘라스틱서치(ElasticSearch) 시작, 상태, 변경점, 클러스터/노드/인덱스 레벨 오퍼레이션 등에 관한 로그를 저장합니다.

로그 이해하기

오류가 발생한 경우, 로그 파일에서 스택 트레이스를 찾을 수 있습니다. 스택 트레이스는 완전하지 않은 구문의 더미입니다. 다음은 짧은 스택트레이스의 예입니다:

java.lang.IllegalStateException: Unable to blame file **/**/foo.java
    at org.sonarsource.scm.git.JGitBlameCommand.blame(JGitBlameCommand.java:128)
    at org.sonarsource.scm.git.JGitBlameCommand.access$000(JGitBlameCommand.java:44)
    at org.sonarsource.scm.git.JGitBlameCommand$1.call(JGitBlameCommand.java:112)
    at org.sonarsource.scm.git.JGitBlameCommand$1.call(JGitBlameCommand.java:109)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:77)
    at org.eclipse.jgit.blame.BlameGenerator.<init>(BlameGenerator.java:161)
    at org.eclipse.jgit.api.BlameCommand.call(BlameCommand.java:203)
    at org.sonarsource.scm.git.JGitBlameCommand.blame(JGitBlameCommand.java:126)
    ... 7 more

오류를 야기시킨 코드를 작성한 경우, 다음에 유의하시기 바랍니다:

  • 첫 번째 행 - 콜론(':') 이후 사용자가 읽을 수 있는 메시지를 포함합니다. 위의 예에서는 it's Unable to blame file **/**/foo.java 입니다
  • Caused by:.로 시작하는 부분 - 해당 구문으로 시작하는 부분이 여럿일 수 있습니다. 들여쓰기를 참조해 오류를 쉽게 확인할 수 있습니다. 각 행의 내용을 주의 깊게 확인하십시오. 일반적으로 가장 마지막 행 혹은 그 직전의 행에 실제적인 오류의 원인이 표시되는 경우가 대부분입니다.


© 2017-2018 Moses Kim.

별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.

::: SonarQube 관련 문의 : 이메일 :::