如何将详细垃圾收集输出重定向到文件?
如何将详细垃圾收集输出重定向到文件? Sun 的网站显示了 Unix 的示例,但它不适用于 Windows。
How do I redirect verbose garbage collection output to a file? Sun’s website shows an example for Unix but it doesn't work for Windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从
java -X
的输出:记录 此处:
所以输出看起来像这样:
From the output of
java -X
:Documented here:
So the output looks something like this:
此外,如果您想将输出通过管道传输到单独的文件,您可以执行以下操作:
在 Sun JVM 上:
在 IBM JVM 上:
If in addition you want to pipe the output to a separate file, you can do:
On a Sun JVM:
ON an IBM JVM:
Java 9 和 统一 JVM 日志
JEP 158 为 JVM 的所有组件引入了一个通用日志系统,该系统将发生变化(并且IMO 简化)日志记录如何与 GC 配合使用。 JEP 158 添加了一个新的命令行选项来控制 JVM 所有组件的日志记录:
例如,以下选项:
将使用
info
级别记录标记有gc
标签的消息到标准输出
。 或者这个:将使用
debug
级别将带有gc
标记的消息记录到名为gc.txt
的文件中,不带修饰。 有关更详细的讨论,您可以查看 JEP 页面中的示例。Java 9 & Unified JVM Logging
JEP 158 introduces a common logging system for all components of the JVM which will change (and IMO simplify) how logging works with GC. JEP 158 added a new command-line option to control logging from all components of the JVM:
For example, the following option:
will log messages tagged with
gc
tag usinginfo
level tostdout
. Or this one:would log messages tagged with
gc
tag usingdebug
level to a file calledgc.txt
with no decorations. For more detailed discussion, you can checkout the examples in the JEP page.要添加上述答案,有一篇很好的文章: 有用的 JVM 标志 – 第 8 部分(GC 日志记录),作者:Patrick Peschlow。
简短摘录:
标志
-XX:+PrintGC
(或别名-verbose:gc
)激活“简单”GC 日志记录模式默认情况下,GC 日志写入 stdout。 使用
-Xloggc:
我们可以指定一个输出文件。 请注意,此标志还隐式设置-XX:+PrintGC
和-XX:+PrintGCTimeStamps
。如果我们使用
-XX:+PrintGCDetails
而不是-XX:+PrintGC
,我们会激活“详细”GC记录模式,该模式根据不同的情况而有所不同使用的 GC 算法。使用
-XX:+PrintGCTimeStamps
,反映自 JVM 启动以来经过的实时时间(以秒为单位)的时间戳被添加到每一行。如果我们指定
-XX:+PrintGCDateStamps
每行都以绝对日期和时间开头。To add to the above answers, there's a good article: Useful JVM Flags – Part 8 (GC Logging) by Patrick Peschlow.
A brief excerpt:
The flag
-XX:+PrintGC
(or the alias-verbose:gc
) activates the “simple” GC logging modeBy default the GC log is written to stdout. With
-Xloggc:<file>
we may instead specify an output file. Note that this flag implicitly sets-XX:+PrintGC
and-XX:+PrintGCTimeStamps
as well.If we use
-XX:+PrintGCDetails
instead of-XX:+PrintGC
, we activate the “detailed” GC logging mode which differs depending on the GC algorithm used.With
-XX:+PrintGCTimeStamps
a timestamp reflecting the real time passed in seconds since JVM start is added to every line.If we specify
-XX:+PrintGCDateStamps
each line starts with the absolute date and time.