我创建了一个自定义appender(将用于Linux)。为了创建这个appender,我使用了这篇文章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();
}
此appender的配置是
如果路径是硬编码的,则Appender工作正常。为什么路径没有通过配置设置?
答案 0 :(得分:0)
从我到目前为止看到的,在配置中,appender属性的名称应该以大写字符开头,所以'Path'而不是'path',所以你应该使用:
log4j.appender.SOLR.Path = http://XX.XXX.XX.XX:8985/application/core
不知道为什么“布局”的情况并非如此。