xian icon indicating copy to clipboard operation
xian copied to clipboard

更完善的log4j2可配置方案

Open happyyangyuan opened this issue 6 years ago • 3 comments

目前遇到local启动环境,无法配置log4j的日志参数

happyyangyuan avatar Aug 05 '19 02:08 happyyangyuan

问题补充 local/ide启动,直接使用log4j的API答应debug日志,不受框架日志级别配置约束

happyyangyuan avatar Aug 05 '19 03:08 happyyangyuan

public abstract class AbstractCustomConfigurationFactoryTemplate extends ConfigurationFactory {

    private Configuration createConfiguration(final String name, ConfigurationBuilder<BuiltConfiguration> builder) {
        builder.setConfigurationName(name);
        builder.setStatusLevel(Level.ERROR);
        builder.add(builder.newFilter("ThresholdFilter", Filter.Result.ACCEPT, Filter.Result.NEUTRAL).addAttribute("level", level()));
        if (isConsoleAppenderEnabled()) {
            AppenderComponentBuilder appenderBuilder = builder.newAppender("Stdout", "CONSOLE").addAttribute("target", ConsoleAppender.Target.SYSTEM_OUT);
            appenderBuilder.add(builder.newLayout("PatternLayout").addAttribute("pattern", "%d [%t] %-5level: %msg [%c]%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.ERROR).add(builder.newAppenderRef("Stdout")));
        return builder.build();
    }

    protected Level level() {
        return Level.ALL;
    }

考虑改下 level()按照子类的配置返回具体level

happyyangyuan avatar Aug 05 '19 03:08 happyyangyuan