Package org.apache.logging.log4j.core
Interface Appender
- All Superinterfaces:
LifeCycle
- All Known Implementing Classes:
AbstractAppender
,AbstractDatabaseAppender
,AbstractFileAppender
,AbstractOutputStreamAppender
,AbstractWriterAppender
,AsyncAppender
,ConsoleAppender
,CountingNoOpAppender
,FailoverAppender
,FileAppender
,HttpAppender
,JdbcAppender
,JeroMqAppender
,JmsAppender
,KafkaAppender
,MemoryMappedFileAppender
,NoSqlAppender
,NullAppender
,OutputStreamAppender
,RandomAccessFileAppender
,RewriteAppender
,RollingFileAppender
,RollingRandomAccessFileAppender
,RoutingAppender
,ScriptAppenderSelector
,SmtpAppender
,SocketAppender
,SyslogAppender
,WriterAppender
Appends
LogEvent
s. An Appender can contain a Layout
if applicable as well
as an ErrorHandler
. Typical Appender implementations coordinate with an
implementation of AbstractManager
to handle external resources
such as streams, connections, and other shared state. As Appenders are plugins, concrete implementations need to
be annotated with Plugin
and need to provide a static
factory method annotated with PluginFactory
.
Most core plugins are written using a related Manager class that handle the actual task of serializing a
LogEvent
to some output location. For instance, many Appenders can take
advantage of the OutputStreamManager
class.
It is recommended that Appenders don't do any heavy lifting since there can be many instances of the class
being used at any given time. When resources require locking (e.g., through FileLock
),
it is important to isolate synchronized code to prevent concurrency issues.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.logging.log4j.core.LifeCycle
LifeCycle.State
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Main plugin element type for Appender plugins.static final Appender[]
Empty array. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Logs a LogEvent using whatever logic this Appender wishes to use.Gets theErrorHandler
used for handling exceptions.Layout<? extends Serializable>
Returns the Layout used by this Appender if applicable.getName()
Gets the name of this Appender.boolean
Some Appenders need to propagate exceptions back to the application.void
setHandler
(ErrorHandler handler) Sets theErrorHandler
used for handling exceptions.
-
Field Details
-
ELEMENT_TYPE
Main plugin element type for Appender plugins.- Since:
- 2.6
- See Also:
-
EMPTY_ARRAY
Empty array.
-
-
Method Details
-
append
Logs a LogEvent using whatever logic this Appender wishes to use. It is typically recommended to use a bridge pattern not only for the benefits from decoupling an Appender from its implementation, but it is also handy for sharing resources which may require some form of locking.- Parameters:
event
- The LogEvent.
-
getName
String getName()Gets the name of this Appender.- Returns:
- name, may be null.
-
getLayout
Layout<? extends Serializable> getLayout()Returns the Layout used by this Appender if applicable.- Returns:
- the Layout for this Appender or
null
if none is configured.
-
ignoreExceptions
boolean ignoreExceptions()Some Appenders need to propagate exceptions back to the application. WhenignoreExceptions
isfalse
the AppenderControl will allow the exception to percolate.- Returns:
true
if exceptions will be logged but not thrown,false
otherwise.
-
getHandler
ErrorHandler getHandler()Gets theErrorHandler
used for handling exceptions.- Returns:
- the ErrorHandler for handling exceptions.
-
setHandler
Sets theErrorHandler
used for handling exceptions.- Parameters:
handler
- the ErrorHandler to use for handling exceptions.
-