Raven connection java.lang.IllegalStateException:正在关闭

时间:2015-12-13 14:15:17

标签: java log4j2 sentry

我有一个非常基本的程序连接到PostgreSQL数据库并测试Sentry日志记录的工作情况。

但我不能优雅地把它关掉。 我做错了什么?

package com.sample;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Main {
    private static final Logger logger = LogManager.getLogger(Main.class);

    public static void main(String[] args) {

        logger.error("Random error");
        logger.trace("Exiting application.");
    }
}

我得到了这个例外:

2015-12-13 16:13:31,914 pool-1-thread-1 ERROR An exception occurred while closing the Raven connection java.lang.IllegalStateException: Shutdown in progress
    at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.java:82)
    at java.lang.Runtime.removeShutdownHook(Runtime.java:239)
    at net.kencochrane.raven.connection.AsyncConnection.close(AsyncConnection.java:92)
    at net.kencochrane.raven.Raven.closeConnection(Raven.java:112)
    at net.kencochrane.raven.log4j2.SentryAppender.stop(SentryAppender.java:303)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.stop(AbstractConfiguration.java:313)
    at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:303)
    at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.java:262)
    at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry$1.run(DefaultShutdownCallbackRegistry.java:100)
    at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:74)
    at java.lang.Thread.run(Thread.java:745)

BTW,将raven.async.gracefulshutdown设置为false无效。

项目主页https://github.com/getsentry/raven-java

1 个答案:

答案 0 :(得分:1)

问题出在raven-java本身,我已经创建了拉取请求,现在它已修复。

https://github.com/getsentry/raven-java/pull/166

你可以像这样使用最新的Sentry:

<repository>
    <id>sonatype-nexus-snapshots</id>
    <name>Sonatype Nexus Snapshots</name>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>

<dependencies>
    <dependency>
        <groupId>net.kencochrane.raven</groupId>
        <artifactId>raven-log4j2</artifactId>
        <version>6.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>