Какова цель следования за параметром log4j ConsoleAppender?

В примере, который я использую, в файле конфигурации log4j есть следующая строка:

<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">

Я понял в этой строке все, кроме follow="true", я прочитал описание именно этого параметра на официальном сайте: This Website . Пробовал искать и на других сайтах, но безрезультатно.

Описание выглядит следующим образом:

Это описание привело меня в замешательство. Что они подразумевают под «переназначением с отличием…», какова его цель, что произойдет, если я изменю его на false.

1 ответ

Свойство доступно не только для чтения и может быть переназначено черезSystem#setOut. При использовании приложения приложение отправит сообщение с текущим значением , тогда как с помощью журналов будет отправлено исходное значение .

Вы можете проверить два поведения с помощью:

            // This performs automatic initialization
      final Logger logger = LogManager.getLogger(Log4j2Test.class);
      // System.out is attached to the JVM's `stdout`
      logger.warn("Sent to 'stdout'");
      // Reassignement of System.out
      System.setOut(new PrintStream(new File("file.log")));
      // System.out is attach to the file 'file.log'
      logger.warn("Sent to 'file.log'");

С практической точки зрения производительность с follow="true"хуже, чем с follow="false"а также System.outредко переназначается .

Другие вопросы по тегам