使用Tomcat 7降低Eclipse WTP中的日志级别
我在EclipseWTP(Juno)中运行Tomcat7,似乎无法降低日志记录级别。它记录了调试中的所有内容,这些内容过于冗长,没有任何用处(我希望它从信息中记录)。logging.properties文件如下所示:使用Tomcat 7降低Eclipse WTP中的日志级别,eclipse,tomcat,logging,eclipse-wtp,Eclipse,Tomcat,Logging,Eclipse Wtp,我在EclipseWTP(Juno)中运行Tomcat7,似乎无法降低日志记录级别。它记录了调试中的所有内容,这些内容过于冗长,没有任何用处(我希望它从信息中记录)。logging.properties文件如下所示: handlers = java.util.logging.ConsoleHandler .handlers = java.util.logging.ConsoleHandler .level=INFO ####################################
handlers = java.util.logging.ConsoleHandler
.handlers = java.util.logging.ConsoleHandler
.level=INFO
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
为了解决这个问题,我在上遵循了tomcat log4j指南。这将使tomcat使用log4j 接下来在$CATALINA_HOME/lib中设置一个log4j配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="null" class="org.apache.log4j.varia.NullAppender" />
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n" />
</layout>
</appender>
<category name="org.package.domain">
<priority value="INFO" />
<appender-ref ref="console" />
</category>
</log4j:configuration>
我也遇到了同样的问题,希望在Eclipse WTP中配置Tomcat 7的日志记录级别。我尝试将logging.properties放在web应用程序的/src目录中。没有效果。我试图修改Tomcat安装的/conf目录中的logging.properties文件,但也没有效果。我在我的工作区目录下的.metadata/.plugins/org.Eclipse.wst.server.core/tmp0中发现了EclipseWTP的“shadow”Tomcat区域,并将logging.properties文件放在那里的/conf目录下。没有效果 我发现很多文章(例如)都提到,虽然“真实生活”中的Tomcat自动运行一个名为“JULI”的日志管理器,但出于某种原因,在Eclipse WTP中运行的Tomcat并没有运行JULI。我试着加上
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
到Tomcat运行配置中的VM参数,但这只会导致ClassNotFound错误。(是的,我的类路径中确实有tomcat-juli.jar,所以不知道它为什么找不到它。)
最后,我想到尝试修改jdk jre/lib中的logging.properties实例。头奖事实证明,这确实对Tomcat在Eclipse中完成的日志记录有影响。因此,这个长篇大论的寓意是,如果您只想在Eclipse中运行时配置日志记录,只需使用以下简单语句:
myapp.mypackage.level=FINE
然后$JAVAHOME/lib/logging.properties就是放置它的地方。根据Tom Chatt引用的内容,添加这两个属性:
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file="${workspace_loc}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/logging.properties"
添加到服务器启动配置的参数将得到您想要的。
${workspace\u loc}
是文本;Eclipse将用您的工作区目录替换它。
tmp0
可以是tmp1
或类似的;使用与服务器配置中相同的路径。
当然,假设您已将logging.properties
文件放在那里。
这样,您将在Project Explorer窗口的“服务器”下看到该文件。
您应该首先从Tomcatconf
目录复制一个
这一切都假设您打算使用JULI
适用于我的Tomcat 8.0和Eclipse Mars。
不知道为什么它对汤姆不起作用。
我确实看到了ClassNotFound
s,原因很明显,当我在某人的帖子中使用了错误的类名时
我建议不要使用Tom Chatt的方法,因为这会影响JVM的所有其他用途。您解决了这个问题吗?我的eclipse+wtp也有同样的问题……另外,请确保相应的根级别和控制台Pender级别不会将其过滤掉,即
.level=FINE
和java.util.logging.ConsoleHandler.level=FINE
这是一个更好的答案。这基本上是一个bug,因为这应该是wtpI上tomcat服务器的默认行为,只需添加“-Djava.util.logging.config.file=…”和一个小的调整(在我的例子中,我配置了“tmp1”,因为我配置了多个服务器实例),就可以了。我不必添加“-Djava.util.logging.manager”。就像上面的评论一样,我无法理解为什么这不是默认配置的一部分。