GCログが再起動のたびにログが上書きされてしまう

下記設定を起動オプションで行いGCログを2世代保持(-XX:NumberOfGCLogFiles=2)する設定はしているのですが、再起動するたびにログが上書きされてしまう現象が発生する。

-Xloggc:servers/front-01/logs/front_gc.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2 -XX:GCLogFileSize=5242880

上記設定の場合、ログサイズが5MB以上になった時にログローテートがかかり、 2世代保持する設定であり、再起動時には、ログローテートがされず、「-Xloggc:servers/front-01/logs/front_gc.log」で していされたログに上書きをするようである。

GCログが再起動のたびにログローテートさせる

GCログが再起動のたびにログが上書きされてしまう現象の回避策として、再起動するたびに ログローテートする設定にすればいい。
たとえば、-Xloggcオプションで%tを付与すると毎回違うファイル名になりGCログが上書きされない。
・JAVA1.8以降のGCログフォーマット(-Xloggc)
%p pid形式のプロセスIDを付与
%t 日付時分秒(2016-03-31_14-20-16)を付与


具体的には下記のように記述する。

-Xloggc:servers/front-01/logs/front_gc_%t.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2 -XX:GCLogFileSize=5242880




Google+