import org.apache.log4j.spi.LoggingEvent;
public class SpecialAppender extends org.apache.log4j.RollingFileAppender {
private String prefix = "";
public SpecialAppender() {
addFilter(new MyFilter());
}
private class MyFilter extends org.apache.log4j.spi.Filter {
public MyFilter() {
}
// @Override
public int decide(LoggingEvent loggingEvent) {
if (loggingEvent == null || loggingEvent.getMessage() == null) {
return super.DENY;
}
if (loggingEvent.getMessage().toString().startsWith(prefix)) {
return super.ACCEPT;
}
return super.DENY;
}
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
}
過濾器 MyFilter 過濾以prefix(在log4j.properties中配置的)爲前綴的Message. 如果MESSAGE以prefix爲前綴則打印log.