有什么方法可以挂钩当前正在运行的 JVM 进程的标准输出或将 JVM 进程的标准输出重定向到非文件位置?
我的应用程序需要 JVM 的详细:gc 输出,目前我可以在控制台中看到此输出,但无法将其存储在数据库中或以任何方式处理它,它对运行 java 应用程序不可见。
System.err System.out
两者都是原生的包装器,内部 JVM 输出不会通过这里。两者都看不到此输出(即使重定向或设置为 null,gc 输出也会显示在控制台中)。
由于性能原因和文件系统锁定,将 verbose:gc 写入文件,然后读取文件无效选项,检查热点源没有通过 JVM 启动标志将输出重定向到非文件位置。
我也无法获得运行 JVM 的 Process 对象,没有方法,我也无法找到暴露 Process 对象的本机,所以仍然没有有效的方法来读取这些数据。
关于如何在运行时读取 verbose:gc 的任何线索?