dropwizard:使用log4j SocketAppender

时间:2016-03-16 07:29:10

标签: logging log4j dropwizard

我使用v0.9.2开发了一个dropwizard应用程序。是否可以在配置YML中使用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 个答案:

答案 0 :(得分:1)

是的。我在此之前已经回答过类似问题:Dropwizard doesn't log custom loggers to file

基本上你的问题是,dropwizard不知道你想要使用的日志工厂。所以你需要告诉DW它。

  1. 创建一个实现AppenderFactory的新工厂。
  2. 实现该工厂以返回SocketAppender或您想要使用的任何追加器。
  3. 您的类需要使用@JsonProperty注释(请参阅我的链接答案中的HostnameFileAppender)
  4. 您需要在META-INF / services中添加一个名为:io.dropwizard.logging.AppenderFactory
  5. 的资源
  6. 您需要添加完整班级名称的文本文件(bla.bla.bla.MyAppenderFactory)
  7. 现在DW了解这个课程。现在,您可以在yml文件的注释中使用您为类提供的名称进行配置。 DW将自动将其解析为正确的Factory类并创建所需的追加器。

    我希望有所帮助,如果您需要更多帮助,请告诉我。

    阿图尔