@PluginFactory public static ConsoleAppender createAppender(@PluginElement("Layout") Layout<? extends Serializable> layout,@PluginElement("Filters") final Filter filter,@PluginAttribute("target") final String t,@PluginAttribute("name") final String name,@PluginAttribute("follow") final String follow,@PluginAttribute("ignoreExceptions") final String ignore){
  if (name == null) {
    LOGGER.error("No name provided for ConsoleAppender");
    return null;
  }
  if (layout == null) {
    layout=PatternLayout.createLayout(null,null,null,null,null);
  }
  final boolean isFollow=Boolean.parseBoolean(follow);
  final boolean ignoreExceptions=Booleans.parseBoolean(ignore,true);
  final Target target=t == null ? Target.SYSTEM_OUT : Target.valueOf(t);
  return new ConsoleAppender(name,layout,filter,getManager(isFollow,target,layout),ignoreExceptions);
}

@ PluginFactory public static ConsoleAppender createAppender ( @ PluginElement ( "Layout" ) Layout < ? extends Serializable > layout , @ PluginElement ( "Filters" ) final Filter filter , @ PluginAttribute ( "target" ) final String t , @ PluginAttribute ( "name" ) final String name , @ PluginAttribute ( "follow" ) final String follow , @ PluginAttribute ( "ignoreExceptions" ) final String ignore ) { if ( name == null ) { LOGGER . error ( "No name provided for ConsoleAppender" ) ; return null ; } if ( layout == null ) { layout = PatternLayout . createLayout ( null , null , null , null , null ) ; } final boolean isFollow = Boolean . parseBoolean ( follow ) ; final boolean ignoreExceptions = Booleans . parseBoolean ( ignore , true ) ; final Target target = t == null ? Target . SYSTEM_OUT : Target . valueOf ( t ) ; return new ConsoleAppender ( name , layout , filter , getManager ( isFollow , target , layout ) , ignoreExceptions ) ; }
create a console appender .
