Как вызвать обновление конфигурации programmati c log4j2 перед вызовом LoggerFactory.getLogger ($ {className}) - PullRequest
0 голосов
/ 06 августа 2020

Я хочу обновить Loggres или перенастроить конфигурацию log4j2 перед вызовом LoggerFactory.getLogger ($ {className}) (т.е. это slf4j api).

   public void addAppender() {
        LoggerContext ctx = (LoggerContext) LogManager.getContext();
        Configuration config = ctx.getConfiguration();

        PatternLayout layout = PatternLayout.newBuilder()
          .withConfiguration(config)
          .withPattern("%d{HH:mm:ss.SSS} %msg%n")
          .build();


        RollingFileAppender appender = RollingFileAppender.newBuilder()
          .setConfiguration(config)
          .withName("TestAppender")
          .withLayout(layout)
          .withFileName("logs/TestAppenderlog")
          .withFilePattern("Zuzi")
          .withPolicy(SizeBasedTriggeringPolicy.createPolicy("10KB"))
          .build();

        appender.start();
        config.addAppender(appender);
        
        LoggerConfig loggerConfig = config.getLoggerConfig("TestAppender") ;
        loggerConfig.addAppender(appender, null, null);

        ctx.updateLoggers();
    }     

Итак, здесь я хочу назвать это addAppender () в моем приложении java spring. Какое идеальное место для вызова этого метода. Пример: Это метод contextInitialized () или другие предложения?

...