我的 Jetty 控制台中显示了大量速度调试和 INFO 消息。我想关闭速度吐出的信息和调试消息。
环境:
这是一个示例消息
2011-04-03 13:00:14.627:/myproject:INFO: Velocity [debug] ResourceManager : found /com/somecompany/something/somefile_ok.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
为了关闭我们现在不想看到的速度消息,似乎需要执行以下操作。我们还希望在需要时轻松地重新打开速度消息:
我读到的东西:
在我做更多之前 Yak Shaving在这一点上,我想确保我按照上面概述的方法走上正轨
顺便说一下,我们使用的是 Spring 3.x
感谢您对此提供的任何帮助。 :)
正如所建议的,这里是 log4j.xml 对名称进行了细微调整:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- ===================================================================== -->
<!-- -->
<!-- Log4j Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: log4j.xml,v 1.6 2011-04-07 16:39:50 consumergear Exp $ -->
<!--
| For more configuration infromation and examples see the Jakarta Log4j
| owebsite: http://jakarta.apache.org/log4j
DEVELOPMENT CONFIGURATION
-->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- ================================= -->
<!-- Preserve messages in a local file -->
<!-- ================================= -->
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="WARN" />
<param name="file" value="G:/logs/somewebplatform/somewebapp-webapp_log4j.log" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %5p %c:%L - %m%n" />
</layout>
</appender>
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="FATAL" />
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />
</layout>
</appender>
<!-- Hide those pesky Hibernate logs. -->
<logger name="net.sf">
<level value="ERROR" />
</logger>
<!-- Hide those pesky apache commons logs. -->
<logger name="org.apache.commons">
<level value="ERROR" />
</logger>
<logger name="com.yesorganization">
<level value="WARN" />
<appender-ref ref="FILE" />
</logger>
<!-- ======================= -->
<!-- Setup the Root category -->
<!-- ======================= -->
<root>
<priority value="WARN" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
带有轻微名称调整的速度属性
#
# specify two resource loaders to use
#
resource.loader = file, class
#
##
## for the loader we call 'file', set the FileResourceLoader as the
## class to use, turn off caching, and use 3 directories for templates
##
file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = d:/projects/somewebapp-webapp/src
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 0
#C:/Projectsyaya/someorg/src/core/java
##
## for the loader we call 'class', use the ClasspathResourceLoader
##
class.resource.loader.description = Velocity Classpath Resource Loader
class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
#
#jar.resource.loader.path = jar:file:/myjarplace/myjar.jar
#jar.resource.loader.path = jar:file:/WEB-INF/lib/someorg-something-1.116.jar
最佳答案
令我震惊的是,您显示的消息在消息中显示 [debug] 并以 Log4J 格式记录为 [INFO]
我的猜测是速度正在使用烘焙的 logkit 和日志记录到标准输出,由 Jetty 重定向到 log4j 基础设施。
Here you can see how Jetty can be reconfigured for redirecting stdout.
如果是这种情况,我会检查配置。
然后你应该用没有依赖关系的速度 jar 替换速度 jar(根据速度记录说明)并添加所有其他依赖项,除了 logkit(并祈祷没有其他库需要 logkit)。然后它将切换到使用 Log4J 并且可以使用类别 org.apache.velocity 进行配置
如果无法避免 Logkit,则必须告诉 Velocity 直接记录到 Log4j :
VelocityEngine ve = new VelocityEngine();
ve.setProperty( RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,
"org.apache.velocity.runtime.log.Log4JLogChute" );
ve.init();
我有过类似的运行,但使用 JBoss,而不是使用 Jetty。
关于spring - 如何在我的 Jetty/log4j 环境中禁用速度调试和信息日志消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531443/