The abstract appender also has various cool methods that you can use when building appenders:
Get the entire properties struct.
Override all properties with a new properties struct.
Get a property.
Set a property.
Checks if a property exists.
Returns true if the appender has been initialized.
Get the name of the appender
Get the appender's unique hash id
Transforms a severity integer to it's human readable form
Get the custom layout object if defined.
Checks if the custom layout object is defined in this appender.