我已经编写了一个自定义log4j appender,为每个日志条目创建一个新的Solr文档,并且在将它部署到JBoss时遇到问题。我应该如何处理自定义Log4j appender dependancies
来源可在github上看到,但真正的问题是试图使用JBoss的appender。像这样的jboss-log4j.xml文件的样子
的培训相关的位:
<appender name="SOLR" class="com.stuartgrimshaw.solrIndexAppender.SolrIndexAppender" />
<root>
<priority value="${jboss.server.log.threshold}"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="SOLR"/>
</root>
为Solr的的依赖都在提供真实.war文件可用,但我猜测,当附加器被初始化相当早在启动过程中,该应用程序尚未部署的是,这就是为什么我在日志中看到以下错误:
2009-11-29 10:40:57,715 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error installing to Create: name=jboss.system:service=Logging,type=Log4jService state=Configured mode=Manual requiredState=Create
java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServerException
有什么办法,我可以延迟初始化,直到Solr的应用已部署,还是有办法部署Solr应用程序,因此它是库jboss在启动时是否可见?
我试过在我想使用的配置文件的lib目录中部署Solr库,但是如果我还部署了Solr网络应用程序,它会给我他们的默认管理界面,我会收到其他Solr邮件列表建议的错误是因为我在两个地方部署了libs。 我可以尝试从solr.war文件中提取库,并将它们部署在/lib中,并将其余部分部署到/deploy/ –
2009-11-29 16:03:23
个人而言,我更喜欢第二种选择,我在应用程序中执行日志记录级别,而不是容器/服务器级别。 – 2009-11-29 21:02:12