【问题标题】:Decreasing log level in Eclipse WTP with Tomcat 7使用 Tomcat 7 降低 Eclipse WTP 中的日志级别
【发布时间】:2013-01-07 01:42:19
【问题描述】:

我在 Eclipse WTP (Juno) 中运行 Tomcat 7,我似乎无法调低日志记录级别。它记录了调试中的所有内容,这些内容太冗长而无法使用(我希望它从 INFO 中记录)。 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

【问题讨论】:

  • 您解决了这个问题吗?我的 eclipse + wtp 也有同样的问题 ...

标签: eclipse tomcat logging eclipse-wtp


【解决方案1】:

根据 Tom Chatt 引用的 FAQ 添加两者

-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_loc} 是文字; Eclipse 会将其替换为您的工作区目录。 tmp0 可能是 tmp1 或类似的;使用与服务器配置相同的路径。 当然,假设您已将logging.properties 文件放在那里。 这样,您将在“服务器”下的“项目资源管理器”窗口中看到该文件。 您应该首先从 Tomcat conf 目录中复制一个。

这一切都假设您打算使用 JULI。

适用于 Tomcat 8.0 和 Eclipse Mars。 不知道为什么它对汤姆不起作用。 我确实看到了ClassNotFounds,原因很明显,当时我使用了某人帖子中的错误类名。

我建议不要使用 Tom Chatt 的方法,因为这会影响该 JVM 的所有其他用途。

【讨论】:

  • 这是一个更好的答案。这基本上是一个错误,因为这应该是 wtp 上的 tomcat 服务器的默认行为
  • 我只需要稍微调整一下添加“-Djava.util.logging.config.file=...”(在我的情况下,我有“tmp1”,因为我配置了多个服务器实例)它奏效了。我不必添加“-Djava.util.logging.manager”。就像上面的评论一样,我不明白为什么这不是默认配置的一部分。
【解决方案2】:

我遇到了同样的问题,想在 Eclipse WTP 中配置 Tomcat 7 的日志记录级别。我尝试将 logging.properties 放在我的网络应用程序的 /src 目录中。没有效果。我尝试修改我的 Tomcat 安装的 /conf 目录中的 logging.properties 文件,但那里也没有效果。我在工作区目录下的 .metadata/.plugins/org.eclipse.wst.server.core/tmp0 中发现了 Eclipse WTP 的“影子”Tomcat 区域,并将 logging.properties 文件放在 /conf 目录下。没有效果。

我发现许多文章(例如,this FAQ at eclipse.org)指出,虽然“现实生活”中的 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-in-Eclipse 完成的日志记录有影响。所以,这个长篇故事的寓意是,如果你想做的只是在 Eclipse 中运行时配置日志记录,只需一个简单的小语句,例如:

myapp.mypackage.level=FINE

那么 $JAVAHOME/lib/logging.properties 就是放它的地方了。

【讨论】:

  • 另外确保相应的根级别和 ConsoleAppender 级别不会将其过滤掉,即 .level=FINEjava.util.logging.ConsoleHandler.level = FINE
【解决方案3】:

为了解决这个问题,我遵循了 http://tomcat.apache.org/tomcat-7.0-doc/logging.html 的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 2022-07-26
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2012-04-20
    • 2016-05-07
    • 2019-02-10
    相关资源
    最近更新 更多