ali*_*lid 15 java logging garbage-collection jvm-arguments
我使用这个jvm选项来创建gc日志并启用滚动:
$ java -Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 XX:GCLogFileSize=128K
Run Code Online (Sandbox Code Playgroud)
但是,当我重新启动应用程序时,我遇到了问题.重新启动后,第一个日志文件将gc.log.0被覆盖,该文件的数据不会被转换为gc.log.1因此丢失.
我想知道我是否正确以及是否有解决方案.
提前致谢!
Krz*_*soń 17
你也可以使用java自己的时间戳:
java -Xloggc:gc-%t.log ...(rest of your line)...
Run Code Online (Sandbox Code Playgroud)
%t将被java的时间戳替换(有关信息和其他格式,请参阅https://bugs.openjdk.java.net/browse/JDK-6950794-Xloggc
同样的问题,我通过添加时间戳到gc日志文件名这样修复它(在这种情况下是/ etc/default/tomcat7):
DATE=`date +%Y-%m-%d-%H-%M`
JAVA_OPTS="-Xloggc:/var/log/tomcat7/gc-$DATE.log ..."
Run Code Online (Sandbox Code Playgroud)
这样你就可以在重新启动后保存你的gc日志,因为jvm以不同的时间戳开始,并且不会覆盖之前写的gc.logs.你需要不时手动清理这些文件(cronjob).
| 归档时间: |
|
| 查看次数: |
6644 次 |
| 最近记录: |