Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在应用程序中记录GC信息_Java_Garbage Collection_Jvm_Logging - Fatal编程技术网

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日志