【問題解決】Tomcat:「Java Options」の改行以降の設定は反映されない
環境
- Tomcat 8.5
- Windows10
- Java8
実現したいこと
GCログを出力したいです。
TomcatのJava Optionsに、GCログを出力する設定を定義します。
Java Optionsの設定は、tomcat8w.exe
を開き、「Javaタブ→Java Options」で行います。
問題
Tomcatの「Java Options」に、GCログを出力するオプションを追記しました。
このとき、もともと設定されていたオプションと区別するため、改行を入れてしましました。
-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」の部分は、以下のようになっていました。
※ログを見やすくするため、先頭のタイムスタンプやクラス名を取り除きました。
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から改行を取り除きました。
-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
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 Logの設定が記載されていました。
そして、/tmp
フォルダにgclog_2018-01-01_15-39-23_pid18096.txt
という名前のGCログが出力されました。
備考
当たり前なことかもしれませんが、Tomcat設定ダイアログの「適用」ボタンを押さないと、Java Optionの変更が反映されません。
私は、適用ボタンを押し忘れ、「なぜ反映されないんだ」と少し悩みました。
まとめ
TomcatのJava Optionsに改行を含めない。
Author And Source
この問題について(【問題解決】Tomcat:「Java Options」の改行以降の設定は反映されない), 我々は、より多くの情報をここで見つけました https://qiita.com/yuji38kwmt/items/930e3fc6086bdffc3183著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .