【问题标题】:Disable highly verbose logging禁用高度详细的日志记录
【发布时间】:2014-10-30 20:07:26
【问题描述】:

我收到了非常冗长的日志记录,我想摆脱它。

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]

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

【问题讨论】:

  • logback.xml 中的 怎么样?例如,您是否尝试将其设置为 INFO?
  • 用 试过了,还是不行

标签: java logging log4j slf4j logback


【解决方案1】:

屏蔽 Apache http

您要静音的包是c.v.c.c. 和o.a.h。这些是缩写。此外,您指定的 &lt;logger name="org.apache.http.wire" level="ERROR"/&gt; 与上述不匹配(取每个包名称的第一个字母)。

你可能有更多的运气

<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 依赖项包含,请为这些依赖项指定排除标记。

【讨论】:

  • 日志框架正在缩短长包名,您仍应配置完整的包名。
猜你喜欢
  • 2020-08-18
  • 1970-01-01
  • 2022-11-15
  • 2019-09-08
  • 2017-03-13
  • 2013-03-12
  • 1970-01-01
  • 2017-07-28
  • 2012-10-08
相关资源
最近更新 更多