【发布时间】:2015-09-21 23:38:52
【问题描述】:
我在我的 JAVA 程序中遇到了 OutOfMemoryError。 OutOfMemoryError 发生没关系,但我想在它发生时记录它。 我已经使用 -XX:OnOutOfMemoryError 选项来检测它是否发生,但它不会记录打印到控制台的堆栈跟踪信息。 我尝试使用重定向来记录此控制台输出,但 2>&1、2> 和所有其他选项都未能记录此输出,它只是打印到控制台。 有没有办法记录这个堆栈跟踪信息? 我一直在 stackoverflow.com 上搜索和搜索,但找不到答案。 请指教。
- 堆转储也不是我的选择。 我没有那么多空间所以不能冒险这么大的文件:'( 我只需要记录堆栈跟踪信息。
谢谢!
【问题讨论】:
-
你在什么平台上?
-
@WhiteViking 我正在使用 linux :)
-
@MickMnemonic 感谢您的回答。我忘了提,但 HeapDump 也不是我的选择。 :)
-
仅分析堆栈跟踪可能无法告诉您 OOME 的实际原因(仅最后一次失败的分配)。您可以使用例如配置您的应用程序吗? VisualVM?
标签: java logging out-of-memory