有没有办法将垃圾收集信息(例如,-XX:+PrintGCDetails或-verbose:gc的输出)转发到Java应用程序中的记录器(在我的例子中是sl4j+ logback )?
发布于 2012-04-20 22:52:26
这些消息是由JVM本机进程生成的,而不是从Java代码生成的,因此您可以
使用
(无旋转)
直接使用
发布于 2016-02-26 22:29:23
一种有趣的方法是将gc.log重定向到命名管道-Xloggc:/my/named/pipe How to write GC log to named pipe
然后从应用程序本身读取该管道:How to open a Windows named pipe from Java?
并从代码中记录到任意(例如异步滚动) logback记录器。
我在Windows机器上试过了。不幸的是,在Windows上安装比在Linux上更难。
在Windows上,它基本上是通过一个额外的Powershell script (也可以是一个专用的应用程序)来工作的。此sample project还包含一个演示应用程序,可以立即使用它来测试通过SLF4J重定向到Logback的GC日志。
https://stackoverflow.com/questions/10105088
复制相似问题