【问题标题】:Exception logging missing caused by异常日志记录丢失导致
【发布时间】:2016-06-23 17:13:05
【问题描述】:

我有以下代码示例,它捕获异常并用 IllegalStateException 包装它们。

try {
    do my things...
} catch (final Exception e) {
    throw new IllegalStateException("Exception happened", e)
}

这一切都很好,除了在运行集成测试时,当记录 IllegalStateException 时,它没有显示引起的原因。

java.lang.IllegalStateException: Exception happened
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155)
    at org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:304)
    at org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:293)
    at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:108)
    at org.apache.curator.framework.imps.GetDataBuilderImpl.pathInForeground(GetDataBuilderImpl.java:290)
    at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:281)
    at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:42)
    at <my package line of "throw new IllegalStateException">.getConfig(ZookeeperConfigProvider.java:55)
    at <my package>.getConfig(ZookeeperConfigProvider.java:49)
    at <my package>.test_get_config_missing_resource(ZookeeperConfigProviderIT.java:118)

我们正在使用 logback、java 8 和 JUnit

Logback 配置(但这看起来不像是由 logback 输出的)

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  <!-- encoders are assigned the type
       ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
  <encoder>
    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

<root level="WARN">
    <appender-ref ref="STDOUT" />
</root>

为什么会发生这种情况?

【问题讨论】:

    标签: java logging junit logback


    【解决方案1】:

    原因就是代码。

    在此处检查 grep 代码,了解 KeeperException 创建方法Grep Code KeeperException

    它只是抛出异常但不添加任何消息。这就是为什么你看不到任何有用的东西。

    另外,因为它只是在没有记录原始问题的情况下返回。

    【讨论】:

      猜你喜欢
      • 2014-10-04
      • 2011-10-23
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多