Eclipse中的Tomcat STDOUT错误

时间:2010-07-29 17:19:29

标签: eclipse tomcat

我在Eclipse(3.3.2)中配置Tomcat(5.5)服务器。一旦我添加Tomcat并启动它,输出就会在Eclipse Console中打印出来。此输出以红色打印,表示其标准错误。虽然服务器启动时没有任何错误,但正常的INFO也被标记为错误。

Jul 29, 2010 7:06:14 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.5.0_10\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.5.0_10\bin\..\jre\bin\client;C:\Program Files\Java\jdk1.5.0_10\bin\..\jre\bin;C:\Program Files\CollabNet Subversion Client;C:\Program Files\Java\jdk1.5.0_10\bin;C:\Program Files\Java\jre1.5.0_07\bin;C:\Program Files\Oracle\Oracle9i\9201\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Sybase125\OCS-12_5\bin;C:\Program Files\Sybase125\OCS-12_5\dll;C:\Program Files\Sybase125\OLEDB;C:\Program Files\Rational\ClearCase\bin;C:\Program Files\Ubsw\Wire\Core;Z:\ZUR_GCOMP_DOC\Project_Trust\datamodel\scripts\GC_trust\Release\1.36\01-DDL;K:\scripts\;C:\Program Files\Ubsw\Wire\Core\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Windows Imaging\;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\apache-maven-2.2.1\bin;C:\Program Files\apache-ant-1.7.0\bin;C:\Viral\Tech\Java\javadb/bin;C:\Program Files\JAD
Jul 29, 2010 7:06:15 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 29, 2010 7:06:15 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1187 ms
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.30
Jul 29, 2010 7:06:15 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Jul 29, 2010 7:06:15 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 29, 2010 7:06:15 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 29, 2010 7:06:15 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/110  config=null
Jul 29, 2010 7:06:15 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Jul 29, 2010 7:06:15 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 922 ms

任何人都可以让我知道如何克服这个问题并将输出更改为BLACK作为STDOUT吗?

5 个答案:

答案 0 :(得分:12)

它是红色的,因为它写入标准错误(System.err),假设您正在使用正常配置。

理论上,修复此问题的方法是调整日志记录配置(基于java.util.logging),以便将INFO级别及以下的消息写入标准输出。不幸的是,这比它可能有点麻烦,因为ConsoleHandler类是硬编码写入标准错误,如果你在写入标准输出和标准错误之间混合,你很有可能'最终会得到不按顺序写入的日志消息。 (这很糟糕。非常令人困惑。)你可以通过继承StreamHandler并进行大量的摆弄来修复它 - 例如,覆盖publish以便在记录从高级变为低时设置输出流 - 反之亦然 - 但我真的怀疑结果会是你想要的。它也会很慢。

由于在Tomcat的生产部署中,您无论如何都不会登录到控制台(默认情况下它会记录到文件中)我建议不要担心这个问题。

答案 1 :(得分:3)

您的问题有一个简短的答案:

控制台视图中的右侧clic>预置...

然后将“标准错误文本颜色”设置为黑色。

但是,当然,如果Eclipse知道Tomcat服务器日志不会以红色显示会更好。

现在看来没有更好的答案: http://www.eclipse.org/forums/index.php?t=msg&goto=531848&

可以使用Eclipse 3.6.2中的Tomcat 6和Tomcat 7重现该问题

答案 2 :(得分:1)

以下对我有用。

在Tomcat server.xml中,注释掉

<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>

似乎Tomcat的“red is cause”无法加载APR本机库。跳过装载,不再是红色。

答案 3 :(得分:0)

对我来说,还有其他一些错误。当我确定时,它有助于在启动日志中没有错误(仅限信息)。如果遇到错误,tomcat显然会切换到错误输出。

答案 4 :(得分:0)

是的,java.util.logging.ConsoleHandler发布到System.err(而不是System.out)...

不涉及编码或仅掩盖任何可能的黑色错误的解决方法是在eclipse启动配置中添加到VM参数:

 -Djava.util.logging.config.file="${workspace_loc}\Servers\Tomcat v8.5 Server at localhost-config\logging.properties"

(相应地调整服务器配置文件夹)

并使用以下命令创建logging.properties:

.level=WARNING

这样,控制台中只会显示问题或潜在问题,而会以红色显示适当的颜色。