如何从Servlet输出文本到控制台

时间:2010-03-20 20:08:05

标签: java logging servlets console jconsole

我有一个servlet。但它没有按预期工作。因此,出于调试目的,我想将语句打印到java控制台(可以使用任务栏中的java图标打开的控制台)。但是,如果我使用System.out.println(“message”),它不会在java控制台中显示。

有没有其他方法可以从servlet向控制台显示消息? 或者任何人都可以建议我另一种方式向任何其他控制台显示消息?

5 个答案:

答案 0 :(得分:10)

您希望它出现在哪个控制台中?

根据servlet容器(我假设是Tomcat),日志存储在logs文件夹中。对于Tomcat,这是tomcat/logs(或更常被称为CATALINA_HOME/logs)。如果从IDE中运行它 - 它们应该在IDE控制台中。

作为旁注,使用System.out不建议使用真实产品 - 使用日志框架(如log4j)。

答案 1 :(得分:2)

  

我想将语句打印到java控制台(可以使用任务栏中的java图标打开的语句)

您需要意识到servlet实际上是在服务器端运行,而不是在客户端。这些实际上是两个物理上不同的环境,它们使用HTTP协议通过网络相互通信。该Java控制台仅适用于在客户端运行的Java程序,例如appletsJNLP

在您的情况下,您只需要阅读服务器日志。这就是stdout默认打印到的地方,或者使用更好的可配置日志框架,例如logback。服务器日志通常位于服务器安装目录中的简单文件夹/文件中,例如/logs,如果是Tomcat。

答案 2 :(得分:1)

在servlet容器(即Tomcat)的log-folder中查找日志文件。

建议使用log4j生成调试消息。此日志记录框架提供了一个配置文件,您可以在其中设置应写入日志的位置或应如何格式化日志消息。一旦它到位,你可以替换

System.out.println("message");

log.debug("your debug message");

log.info("in case of a message with info character");
log.error("routine foo has experienced an exception", e);

现在您的代码更清晰,甚至还有其他好处 - 正确放置后,这些日志可作为代码段的文档。

答案 3 :(得分:1)

Servlet(HttpServlet)有一个从GenericServlet类继承的方法log(String s)。

所以你可以加入

log("output text")
在servlet的代码中

并查看输出。

如果您使用Eclipse,则会直接进入控制台。

如果您使用IntellijIdea日志进入运行 - > “Tomcat Localhost Log”选项卡。

答案 4 :(得分:0)

您应该使用日志记录,例如java.util.logginglog4j

相关log4j配置示例:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>