use of org.apache.logging.log4j.core.ErrorHandler in project jmeter by apache.
the class TestGuiLogEventAppender method beforeClass.
/*
* Configure logging with GuiLogEventAppender for root logger, and override the handler of GuiLogEventAppender
* to see if there's any log4j2 AppenderControl level error (e.g, "Recursive call to appender gui-log-event").
*/
@BeforeClass
public static void beforeClass() {
ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.setPackages("org.apache.jmeter.gui.logging");
AppenderComponentBuilder appenderBuilder = builder.newAppender("Stdout", "CONSOLE").addAttribute("target", ConsoleAppender.Target.SYSTEM_OUT);
appenderBuilder.add(builder.newLayout("PatternLayout").addAttribute("pattern", "%d %p %c{1.}: %m%n"));
builder.add(appenderBuilder);
appenderBuilder = builder.newAppender("gui-log-event", "GuiLogEvent");
appenderBuilder.add(builder.newLayout("PatternLayout").addAttribute("pattern", "%d %p %c{1.}: %m%n"));
builder.add(appenderBuilder);
RootLoggerComponentBuilder rootLoggerBuilder = builder.newRootLogger(Level.INFO);
rootLoggerBuilder.add(builder.newAppenderRef("Stdout")).add(builder.newAppenderRef("gui-log-event"));
builder.add(rootLoggerBuilder);
final LoggerContext loggerContext = Configurator.initialize(builder.build());
final Appender guiLogEventAppender = loggerContext.getRootLogger().getAppenders().get("gui-log-event");
guiLogEventAppender.stop();
guiLogEventAppender.setHandler(new ErrorHandler() {
public void error(String msg) {
log4j2LevelErrorMessages.add(msg);
}
public void error(String msg, Throwable t) {
log4j2LevelErrorMessages.add(msg + " " + t);
}
public void error(String msg, LogEvent event, Throwable t) {
log4j2LevelErrorMessages.add(msg + " " + t);
}
});
guiLogEventAppender.start();
}
Aggregations