*
* @param targetAppender The Appender to be converted
* @return The {@link AppenderData} instance corresponding to <code>targetAppender</code>
*/
private AppenderData toAppenderData(Appender targetAppender) {
AppenderData appenderData = null;
if (targetAppender != null) {
appenderData = new AppenderData();
appenderData.setName(targetAppender.getName());
Layout layout = targetAppender.getLayout();
if (layout instanceof PatternLayout) {
appenderData.setPattern(((PatternLayout) layout).getConversionPattern());
}
if (targetAppender instanceof AppenderSkeleton) { // normally all the appenders inherit from AppenderSkelton
AppenderSkeleton appender = (AppenderSkeleton) targetAppender;
Priority priority = appender.getThreshold();
if (priority != null) {
appenderData.setThreshold(priority.toString());
} else {
appender.setThreshold(Level.toLevel(Priority.DEBUG_INT));
appenderData.setThreshold("DEBUG");
}
}
if (targetAppender instanceof SyslogAppender) { //NOTE: Don't make this an else if
SyslogAppender appender = (SyslogAppender) targetAppender;
appenderData.setIsSysLogAppender(true);
appenderData.setFacility(appender.getFacility());
appenderData.setSysLogHost(appender.getSyslogHost());
} else if (targetAppender instanceof FileAppender) {
appenderData.setIsFileAppender(true);
appenderData.setLogFile(((FileAppender) targetAppender).getFile());
}
}
return appenderData;
}