Skip to content

Commit

Permalink
Programatic log4j2 configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
r00tat committed Jul 18, 2017
1 parent be3f90c commit 1e8fdf0
Showing 1 changed file with 28 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@
package org.openstreetmap.josm.plugins.areaselector;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.LoggerConfig;
import org.apache.logging.log4j.core.appender.ConsoleAppender;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.gui.MainMenu;
import org.openstreetmap.josm.gui.MapFrame;
Expand All @@ -26,15 +31,7 @@ public class AreaSelectorPlugin extends Plugin {
public AreaSelectorPlugin(PluginInformation info) {
super(info);

// ConsoleAppender console = ConsoleAppender.newBuilder().setName("console").setLayout(
// PatternLayout.newBuilder().withPattern("%d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L: %m %x%n").build())
// .build();

LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
LoggerConfig config = ctx.getConfiguration().getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
// config.addAppender(console, Level.INFO, null);
config.setLevel(Level.INFO);
ctx.updateLoggers();
setupLogging();

areaSelectorAction = new AreaSelectorAction(Main.map);
MainMenu.add(Main.main.menu.toolsMenu, areaSelectorAction);
Expand Down Expand Up @@ -62,4 +59,24 @@ public PreferenceSetting getPreferenceSetting() {
public AreaSelectorAction getAreaSelectorAction() {
return areaSelectorAction;
}

protected LoggerContext setupLogging(){
ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
builder.setStatusLevel(Level.ERROR);
builder.setConfigurationName("BuilderTest");
builder.add(builder.newFilter("ThresholdFilter", Filter.Result.ACCEPT, Filter.Result.NEUTRAL)
.addAttribute("level", Level.DEBUG));
AppenderComponentBuilder appenderBuilder = builder.newAppender("Stdout", "CONSOLE").addAttribute("target",
ConsoleAppender.Target.SYSTEM_OUT);
appenderBuilder.add(builder.newLayout("PatternLayout")
.addAttribute("pattern", "%d [%t] %-5level: %msg%n%throwable"));
appenderBuilder.add(builder.newFilter("MarkerFilter", Filter.Result.DENY, Filter.Result.NEUTRAL)
.addAttribute("marker", "FLOW"));
builder.add(appenderBuilder);
// builder.add(builder.newLogger("org.apache.logging.log4j", Level.DEBUG)
// .add(builder.newAppenderRef("Stdout")).addAttribute("additivity", false));
builder.add(builder.newRootLogger(Level.INFO).add(builder.newAppenderRef("Stdout")));
LoggerContext ctx = Configurator.initialize(builder.build());
return ctx;
}
}

0 comments on commit 1e8fdf0

Please sign in to comment.