我需要了解Tomcat如何捕获JVM垃圾收集控制台输出日志并将其放入catalina.out。
我尝试重定向 System.out 和 System.err ,但没有办法。我无法获得GC日志的输出 但是,当在Tomcat中激活 -verbose:gc (在catalina.sh,* JAVA_OPT *中)并稍后在 catalina.out 中检查输出时,我能够看到GC日志。这怎么可能? Tomcat如何将该输出重定向到文件?
也许您知道使用java代码在某些Java应用程序中重定向GC日志输出的方法吗?
提前谢谢。
答案 0 :(得分:2)
它与代码无关; catalina.out
文件不是“真实日志”,它只是一个标准tomcat启动命令将所有输出推送到的文件。
换句话说,这是一个shell问题,而不是java问题:)
答案 1 :(得分:0)
Tomcat必须确实使用System.setErr()和System.setOut()。关于它在本网站的其他地方如何运作,我们进行了很好的讨论:java: "final" System.out, System.in and System.err?
Tomcat将所有控制台输出重定向到catalina.out。您可以通过JULI日志设置来配置它。