By using
FailoverAppender, you can achieve failover mechanism, The FailoverAppender
wraps a set of appenders, if the primary appender failed, then the secondary
will be tried and so on.
Following
table shows parameters of FailoverAppender.
Parameter
|
Type
|
Description
|
filter
|
Filter
|
Filters
are used to filter the log events. Filters take the decision, whether to log
the event (or) not. More than one Filter may be used by using a CompositeFilter.
|
primary
|
String
|
Name of
the primary appender to use.
|
failovers
|
String[]
|
Names of
the secondary appenders to use.
|
name
|
String
|
Name of
the appender
|
retryIntervalSeconds
|
integer
|
The number
of seconds that should pass before retrying the primary Appender. The default
is 60 seconds.
|
ignoreExceptions
|
boolean
|
If
ignoreExceptions set to false exceptions will be propagated to the caller. If
ignoreExceptions is set to true, exceptions encountered while appending
events to be internally logged and then ignored.
Default
value is true.
|
target
|
String
|
Either
"SYSTEM_OUT" or "SYSTEM_ERR". Default value is
SYSTEM_ERR.
|
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="DEBUG" monitorInterval="30"> <Appenders> <Console name="my_console_appender" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </Console> <File name="my_file_appender" fileName="/Users/harikrishna_gurram/application.log"> <PatternLayout> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> </File> <Failover name="failover_appender" primary="my_file_appender"> <Failovers> <AppenderRef ref="my_console_appender" /> </Failovers> </Failover> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="failover_appender" /> </Root> </Loggers> </Configuration>
package log4j_tutorial; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class HelloWorld { private static final Logger logger = LogManager.getLogger(); public static void main(String args[]) throws InterruptedException { logger.trace("Trace Message!"); Thread.sleep(20000); logger.debug("Debug Message!"); logger.info("Info Message!"); logger.warn("Warn Message!"); logger.error("Error Message!"); logger.fatal("Fatal Message!"); } }
No comments:
Post a Comment