我有一个在 Eclipse STS 3.7 中编译的 Spring 应用程序,我在 Tomcat 8 服务器上运行它。最近,我的控制台收到了很多 DEBUG 消息,我似乎无法摆脱这些消息。它们看起来都像这样......
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - New match='web-app'
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - Fire begin() for org.apache.tomcat.util.descriptor.web.SetPublicIdRule@24f3d083
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - org.apache.tomcat.util.descriptor.web.WebXml.setPublicId(null)
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - Fire begin() for org.apache.tomcat.util.descriptor.web.IgnoreAnnotationsRule@46f993c3
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - org.apache.tomcat.util.descriptor.web.WebXml.setMetadataComplete( false)
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - Fire begin() for org.apache.tomcat.util.descriptor.web.VersionRule@3556c2ee
14:58:16.756 [localhost-startStop-1] DEBUG o.a.tomcat.util.digester.Digester - org.apache.tomcat.util.descriptor.web.WebXml.setVersion( 2.5)
当然还有很多上面的输出。我可以从缩写的地址名称(o.a.tomcat 而不是 org.apache.tomcat)看出这可能来自 Spring Commons Logging。我一辈子都想不出如何关闭它。我查看了各种线程:
- tomcat is logging all the tomcat related Debug logs
- how to disable tomcat 7 console debug information
- Tomcat DEBUG logging coming out on console unexpectedly
- spring framework stuck on debug log level
- Restricting Tomcat logging in eclipse
这些解决方案似乎都没有帮助。我知道我一定是忽略了一些东西。我的配置如下...
src/main/resources/logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration scan="true" scanPeriod="30 seconds">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<!-- To enable JMX Management -->
<jmxConfigurator/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{0} - %msg%n
</Pattern>
</layout>
</appender>
<!--<logger name="org.hibernate" level="debug"/> -->
<logger name="com.my.project" level="info"/>
<root level="info">
<appender-ref ref="console"/>
</root>
</configuration>
Tomcat 8 VM 参数(在 Eclipse 中配置)
-Dcatalina.base="C:\Workspaces\windwaker\.metadata\.plugins\org.eclipse.wst.server.core\tmp0"
-Dcatalina.home="C:\apache-tomcat-8.0.28"
-Dwtp.deploy="C:\Workspaces\windwaker\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps"
-Djava.endorsed.dirs="C:\apache-tomcat-8.0.28\endorsed"
-Djava.util.logging.config.file="C:\apache-tomcat-8.0.28\conf\logging.properties"
C:\apache-tomcat-8.0.28\conf\logging.properties
.level=INFO
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
如果您想了解有关我的设置的任何其他信息,我很乐意与您分享。感谢您提供的任何帮助。
最佳答案
我无法重现您的问题。我有 Tomcat apache-tomcat-8.0.30,我使用了你的 logback.properties 和 logging.properties,不同的是我创建了 mylogging.properties 并使用了 -Djava.util.logging.config 中的路径。文件
。
我有一个简单的 MVC Controller (spring-webmvc,4.2.4.RELEASE):
package test;
import java.util.Date;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class ExecuteController {
// @Autowired
JdbcTemplate jdbcTemplate;
@ResponseBody
@RequestMapping(path="execute")
public String execute() {
return new Date().toString() + ": executed " + (jdbcTemplate == null);
}
}
即使被调用,我也不会在日志中看到此类消息。
您可以尝试全新安装和/或提供更多信息吗?
关于java - Eclipse Tomcat 8 服务器上的 Spring MVC 应用程序输出过多的 DEBUG 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599033/