2014-01-21 53 views
0

我创建了一个自定义appender(将用于Linux)。对于本附加器的创建我用这篇文章How write custom log4j appender自定义Log4j appender的配置不起作用

public class SolrAppender extends AppenderSkeleton { 

private String path = null;  
public void setPath(String path) { this.path = path; } 
public String getPath()   { return this.path; } 

@Override 
public boolean requiresLayout() { 
    return true; 
} 

@Override 
public void close() { 

} 

@Override 
public void activateOptions() { 
    super.activateOptions();   
} 

@Override 
public synchronized void append(LoggingEvent event) { 

      SolrServer server = new HttpSolrServer(path);     
    SolrInputDocument document = new SolrInputDocument(); 
    //some logic 
      UpdateResponse response = server.add(document); 
    server.commit();     

} 

本附加器的配置是

  1. #Solr的附加器
  2. log4j.appender.SOLR = ricardo.solr.appender.QueryParser.SolrAppender
  3. log4j.appender.SOLR.layout = org.apache.log4j.SimpleLayout定义
  4. log4j.appender.SOLR.path = http://XX.XXX.XX.XX:8985/application/core

Appender在路径被硬编码时工作正常。为什么路径没有通过配置设置?

回答

0

从我到目前为止看到的一个appender属性的名称在配置中应该以大写字母开头,所以'Path'而不是'path',所以你应该使用:

log4j.appender.SOLR.Path = http://XX.XXX.XX.XX:8985/application/core 

不知道为什么它不是'布局'的情况,但。

+0

更改路径路径没有帮助。 – Marina