2016-03-16 53 views
0

我開發了一個使用v0.9.2的dropwizard應用程序。是否可以在配置YML中使用log4j的SocketAppender?直接指定類型「插座」不工作:dropwizard:使用log4j SocketAppender

Failed to parse configuration at: logging.appenders.[1]; Could not resolve type id 'socket' into a subtype of [simple type, class io.dropwizard.logging.AppenderFactory]: known type ids = [AppenderFactory, console, file, syslog] 

任何指導,將是否已經有人做過這種:)

回答

1

是的,它的東西大加讚賞。我在此之前的回答類似於:Dropwizard doesn't log custom loggers to file

本質上你的問題是,dropwizard不知道你想使用的日誌工廠。所以你需要告訴DW。

  1. 創建一個實現AppenderFactory的新工廠。
  2. 實現該工廠以返回一個SocketAppender或任何你想使用的appender。
  3. 你的類需要@JsonProperty(見HostnameFileAppender在我的鏈接回答)
  4. 您需要在添加資源META-INF /服務稱爲被註釋:io.dropwizard.logging.AppenderFactory
  5. 該文本文件你需要添加完整的類名(bla.bla.bla.MyAppenderFactory)

現在DW知道這個類。您現在可以在您的yml文件的註釋中使用您給班級的名稱進行配置。 DW會自動將其解析到正確的Factory類並創建您想要的appender。

我希望幫助,讓我知道如果你需要更多的幫助。

Artur