禁用高度详细的日志记录

时间:2014-10-30 20:07:27

标签: java logging log4j slf4j logback

我正在接受这种高度冗长的日志记录,我想摆脱它。

1:39:20.187 [main] INFO  c.v.c.c.ConfigManager - End XML Read
11:39:20.187 [main] INFO  c.v.c.c.ConfigManager - The content of ConfigCfg_pdMetering.xml is ConfigCfg [xxx=yyy]
11:39:37.335 [Thread-1] DEBUG o.a.h.c.p.RequestProxyAuthentication - Proxy auth state: UNCHALLENGED
11:39:37.335 [Thread-1] DEBUG o.a.h.i.c.DefaultHttpClient - Attempt 1 to execute request

日志记录来自我在项目中导入的jar。我使用“jar uf”

修改了jar中的logback.xml和log4j.properties

logback.xml现在看起来像:

<?xml version="1.0"?>
  <configuration debug="false">
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
          <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
          <encoder>
              <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
          </pattern>
          </encoder>
      </appender>
      <logger name="com.hccl" level="ERROR"/>
      <logger name="org.apache.http.wire" level="ERROR"/>
      <root level="debug">
          <appender-ref ref="STDOUT"/>
      </root>
  </configuration>

和log4j.properties:

log4j.rootCategory=INFO, stdout
log4j.logger.org.springframework.ws.client.MessageTracing.sent=ERROR
log4j.logger.org.springframework.ws.client.MessageTracing.received=ERROR

log4j.logger.org.springframework.ws.server.MessageTracing=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p [%c{3}] %m%n

log4j.logger.httpclient.wire=ERROR

我导入了这个修改过的jar并将其导入我的项目。这并没有影响日志记录。 另外,我在控制台中收到以下内容:

SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

我不知道为什么我会看到这个警告。

1 个答案:

答案 0 :(得分:0)

将Apache http静音

您想要静音的软件包是c.v.c.c.o.a.h。这些都是缩写。此外,您指定的<logger name="org.apache.http.wire" level="ERROR"/>与上述内容不匹配(取每个包名的第一个字母)。

你可能会有更多运气

<logger name="org.apache.http" level="ERROR"/>

关闭所有org apache http日志记录(可能是o.a.h.*)。

c.v.c.c

静音

要将以c.v.c.c.ConfigManager开头的前两行静音,您需要找出这些类。您可以通过将%logger{36}替换为%logger来完成此操作,以打印完整的包和类名。或者也许是你自己的班级。在这种情况下,您可以自己将相应的记录器条目放入您的文件中。

警告slf4j-Binding

如果slf4j输出有关“实际绑定”的警告,则类路径中可能有多个slf4j绑定。当我从您的问题中读到时,您尝试使用logback和log4j,这将无法正常工作 - slf4j决定仅使用logback。删除log4j和log4j.properties。如果它们被maven依赖项包含在内,请为这些依赖项指定排除标记。