2014-01-21 3 views
0

사용자 정의 appender (Linux 용)가 작성되었습니다. 이 펜더의 창조를 위해 나는이 펜더의 구성사용자 정의 Log4j appender 구성이 작동하지 않습니다.

  1. # SOLR입니다 How write custom 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();     
    
    } 
    

    이 문서를 사용 펜더

  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

관련 문제