无法在dropwizard中配置日志记录。无法解析类型ID' console'

时间:2016-09-13 18:08:44

标签: gradle dropwizard

我正在尝试在我的项目中配置控制台appender。当我在本地调试中启动我的应用程序时它工作正常。但是,当我在Gradle中构建我的jar并将其作为独立应用程序启动时,我得到以下错误:

[0]; Could not resolve type id 'console' into a subtype of [simple type, class io.dropwizard.logging.AppenderFactory]: known type ids = [AppenderFactory]

以下是我的.yml文件的摘要:

logging:
    appenders:
    - type: console
      timeZone: UTC
      logFormat: '%-5level [%date{ISO8601}] [%X{requestId}] %c: %msg%n%rootException'

我能够找到有关类似问题的帖子。例如,此线程here建议检查文件META-INF/services/io.dropwizard.logging.AppenderFactory是否在应用程序jar中,如果内容如下:

io.dropwizard.logging.ConsoleAppenderFactory
io.dropwizard.logging.FileAppenderFactory
io.dropwizard.logging.SyslogAppenderFactory

我已经验证了。在我的情况下文件是它应该的位置,它具有完全相同的内容。 任何帮助将不胜感激。

Dropwizard版本0.9.2

1 个答案:

答案 0 :(得分:2)

Gradle是否会产生一个Uber / Fat Jar(一个包含其内部所有依赖关系的jar)或一个只有你的Dropwizard应用程序的简单jar?

建议为Dropwizard部署构建Fat-jar,如果您不这样做,请切换到此样式。

现在在构建Fat-Jar时,您需要执行以下操作来解决您的问题(这在您链接的讨论中提到过)

  

如果您使用maven-shade插件构建胖罐,请不要忘记SPI资源转换器将SPI资源收集到jar中。

<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>

要在Gradle中执行相同操作,请检查此discussion

HTH。