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

pgp*_*hon 7 eclipse logging tomcat eclipse-wtp

我在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
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 8

根据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"
Run Code Online (Sandbox Code Playgroud)

到服务器启动配置的参数将获得你想要的. ${workspace_loc}是文字; Eclipse将用您的工作区目录替换它. tmp0或许是tmp1这样的; 使用服务器配置中的相同路径.当然,假设您已将logging.properties文件放在那里.这样,您将在"服务器"下的"项目资源管理器"窗口中看到该文件.您应该从Tomcat conf目录中复制一个.

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

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

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


小智 6

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

我发现了一些文章(例如eclipse.org上的这个FAQ),指出虽然"真实生活"中的Tomcat会自动运行一个名为"JULI"的日志管理器,但出于某种原因,在Eclipse WTP中运行的Tomcat不能与JULI一起运行.我尝试添加

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Run Code Online (Sandbox Code Playgroud)

在我的Tomcat运行配置中的VM args,但这只是让我得到ClassNotFound错误.(是的,我确实在我的类路径中有tomcat-juli.jar,所以不知道它为什么没找到它.)

最后,我想到尝试修改jdk jre/lib中的logging.properties实例.大奖!事实证明,这是对Tomcat-in-Eclipse完成的日志记录产生影响的那个.所以,这个长篇故事的寓意是,如果您只想在Eclipse中运行时简单地配置日志记录,那么只需要一个简单的小语句:

myapp.mypackage.level=FINE
Run Code Online (Sandbox Code Playgroud)

然后$ JAVAHOME/lib/logging.properties就是放置它的地方.


pgp*_*hon 0

为了解决这个问题,我遵循了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>
Run Code Online (Sandbox Code Playgroud)