【문제 해결】 Tomcat : 「Java Options」의 개행 이후의 설정은 반영되지 않는다

환경


  • Tomcat 8.5
  • Windows10
  • Java8

  • 실현하고 싶은 것



    GC 로그를 출력하고 싶습니다.
    Tomcat의 Java 옵션에 GC 로그를 출력하는 설정을 정의합니다.
    Java Options의 설정은, tomcat8w.exe 를 열고 「Java 탭→Java Options」로 실시합니다.



    문제



    Tomcat의 "Java Options"에 GC 로그를 출력하는 옵션을 추가했습니다.
    이 때, 원래 설정되어 있던 옵션과 구별하기 위해, 개행을 넣어 버렸습니다.

    JavaOptions
    -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
    
    -verbose:gc
    -Xloggc:/tmp/gclog_%t_%p.txt
    



    "적용"버튼을 눌러 Tomcat을 다시 시작했습니다 (stop 버튼을 누른 후 start 버튼을 누릅니다). /tmp 폴더에 GC 로그가 없습니다.
    또한 tomcat8w.exe를 닫았다가 다시 열면 Java Options에서 GC 로그 설정이 사라졌습니다.

    문제 확인


    C:\Program Files\Apache Software Foundation\Tomcat 8.5\logs 에 있는 catalina.yyyy-mm-dd.log 를 확인했습니다.
    Command line argument의 부분은 다음과 같습니다.
    ※로그를 보기 쉽게 하기 위해, 선두의 타임 스탬프나 클래스명을 제거했습니다.

    catalina.2018-01-01.log
    Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    Command line argument: -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    Command line argument: -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
    Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    Command line argument: -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
    Command line argument: exit
    Command line argument: abort
    Command line argument: -Xms128m
    Command line argument: -Xmx256m
    
    -Djava.util.logging.config.file 다음은 exit , abort 에서 GC 로그 설정이 없습니다.
    분명히 Java Options에 줄 바꿈이 있으면 거기에서 끝나는 것 같습니다.

    해결책



    Java Options에서 줄 바꿈을 제거했습니다.

    javaoptions
    -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
    -verbose:gc
    -Xloggc:/tmp/gclog_%t_%p.txt
    



    catalina-2018-01-01.log
    Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    Command line argument: -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 8.5
    Command line argument: -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp
    Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    Command line argument: -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\logging.properties
    Command line argument: -verbose:gc
    Command line argument: -Xloggc:/tmp/gclog_%t_%p.txt
    Command line argument: exit
    Command line argument: abort
    Command line argument: -Xms128m
    Command line argument: -Xmx256m
    
    catalina-yyyy-mm-dd.log에는 GC 로그 설정이 포함되어 있습니다.
    그리고 /tmp 폴더에 gclog_2018-01-01_15-39-23_pid18096.txt라는 GC 로그가 출력되었습니다.

    비고



    당연한 일이지만, Tomcat 설정 대화 상자의 "적용"버튼을 누르지 않으면 Java Option의 변경 사항이 반영되지 않습니다.
    나는 적용 버튼을 누르는 것을 잊었고 "왜 반영되지 않는다"고 조금 고민했다.

    요약



    Tomcat의 Java Options에 줄 바꿈을 포함하지 마십시오.

    좋은 웹페이지 즐겨찾기