control.callAppender(event);
}
}
private synchronized AppenderControl getControl(String key, LogEvent event) {
AppenderControl control = appenders.get(key);
boolean defaultRoute = false;
if (control != null) {
return control;
}
Route route = null;
for (Route r : routes.getRoutes()) {
if (r.getAppenderRef() == null && key.equals(r.getKey())) {
route = r;
break;
}
}
if (route == null) {
control = appenders.get(DEFAULT_KEY);
if (control != null) {
return control;
}
for (Route r : routes.getRoutes()) {
if (r.getAppenderRef() == null && r.getKey() == null) {
route = r;
defaultRoute = true;
break;
}
}
}
if (route != null) {
Appender app = createAppender(route, event);
if (app == null) {
return null;
}
control = new AppenderControl(app, null, null);
appenders.put(key, control);
if (defaultRoute) {
appenders.put(DEFAULT_KEY, control);
}
}