Eclipse中的Tomcat控制台输出:我的System.out.print()输出在哪里,如何调试?

时间:2017-12-08 15:33:00

标签: java eclipse tomcat

在Eclipse的控制台中,我只能看到tomcat服务器启动日志,但是没有别的,我的应用程序中没有显示system.out.print(),这使得调试变得困难。

我可以在Eclipse中更改哪些设置以将我的system.out.print()输出回控制台?

3 个答案:

答案 0 :(得分:1)

这不是正确的做法,但您可以切换到System.err.println()作为开关,而不是在控制台中捕获值。正确的方法是使用记录器中的logger(如log4j)。

答案 1 :(得分:1)

好的,最好的方法是使用记录器,log4j是我的首选工具。

首先通过创建log4j.properties文件来配置记录器。这是一个匹配您的问题的好例子:

# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE, LOGFILE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n

此配置会将info及以上消息发送到控制台。现在,您希望log4j.properties如何初始化以及如何引用log4j jar库取决于您如何部署应用程序。

在stackoverflow上配置的一个很好的参考是:Where should I put the log4j.properties file?

关于log4j用法的一个很好的参考是:http://www.codejava.net/coding/how-to-configure-log4j-as-logging-mechanism-in-java

注意您可以通过多种方式进行配置。这是你的电话。现在在您的类文件中初始化记录器:

public class MyClass {
  private static final Logger log = Logger.getLogger(MyClass.class);

  ....

  log.info("A log message to the console!!!!");

真的。现在你完全掌控了。一般来说,使用记录器来控制输出几乎总是最好的。 System.XXX.println无法通过中央配置进行控制,您将忘记稍后将其删除。您还可以添加其他appender来保持输出,如下所示:

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.MaxFileSize=5MB
log4j.appender.LOGFILE.File=mylogfile.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c]: %m%n

这将生成一个mylogfile.log,并将文件保持在最大5MB,并将保留多个(忘记默认)版本并附加时间戳。

我希望有所帮助。 log4j已经永远存在并且非常出色。网上有更多的教程,而不是你可以动摇。

答案 2 :(得分:0)

您也可以尝试清理项目(Project - > Clean),它对我有帮助,System.out又开始在控制台中显示。