Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Tomcat 7降低Eclipse WTP中的日志级别_Eclipse_Tomcat_Logging_Eclipse Wtp - Fatal编程技术网

使用Tomcat 7降低Eclipse WTP中的日志级别

使用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 ####################################

我在EclipseWTP(Juno)中运行Tomcat7,似乎无法降低日志记录级别。它记录了调试中的所有内容,这些内容过于冗长,没有任何用处(我希望它从信息中记录)。logging.properties文件如下所示:

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窗口的“服务器”下看到该文件。 您应该首先从Tomcat
conf
目录复制一个

这一切都假设您打算使用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”。就像上面的评论一样,我无法理解为什么这不是默认配置的一部分。