Java 在应用程序中记录GC信息
有没有办法将垃圾收集信息(例如,Java 在应用程序中记录GC信息,java,garbage-collection,jvm,logging,Java,Garbage Collection,Jvm,Logging,有没有办法将垃圾收集信息(例如,-XX:+PrintGCDetails或-verbose:gc的输出)转发到Java应用程序中的记录器(在我的例子中是sl4j+logback)?这些消息是由JVM本机进程生成的,而不是从Java代码生成的,因此您可以 使用-Xloggc将输出重定向到文件(无旋转) 直接插入管道标准件(多个旋转选项) 一种有趣的方法是将gc.log重定向到命名管道 -Xloggc:/my/named/pipe 然后阅读应用程序本身的管道: 并从代码中登录到任意
-XX:+PrintGCDetails
或-verbose:gc
的输出)转发到Java应用程序中的记录器(在我的例子中是sl4j+logback)?这些消息是由JVM本机进程生成的,而不是从Java代码生成的,因此您可以
-Xloggc
将输出重定向到文件(无旋转)
一种有趣的方法是将gc.log重定向到命名管道
-Xloggc:/my/named/pipe
然后阅读应用程序本身的管道:
并从代码中登录到任意(例如异步滚动)回写日志记录器
在Windows机器上尝试过。不幸的是,在Windows上设置要比在Linux上设置复杂得多
在Windows上,它基本上是在其他应用程序的帮助下工作的(也可以是专用应用程序)。
这还包含一个演示应用程序,可以立即使用它来测试通过SLF4J重定向到Logback的GC日志