Как загрузить конфигурацию регистрации внешнего log4j в Spring 5 и Tomcat 8 (Log4jConfigListener) - PullRequest
0 голосов
/ 04 мая 2020

У меня есть приложение java spring 5, которое я развернул в Tomcat 8.5.15. Приложение java содержит каркас log4j и (по умолчанию) файл конфигурации "log4j.properties".

В некоторых случаях я хотел бы загрузить внешний файл log4j, который переопределяет файл, упакованный в приложение, в том, что возможно?

Вы могли бы сделать это раньше с помощью Spring "Log4jConfigListener".

1 Ответ

1 голос
/ 04 мая 2020

да, вы можете использовать его для настройки внешнего конфига, написав небольшой код.

// import org.apache.logging.log4j.core.LoggerContext;

LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
File file = new File("path/to/a/different/log4j2.xml");

// this will force a reconfiguration
context.setConfigLocation(file.toURI());

ссылка: Ссылка

, если вы не хотите *.xml чем вы можете использовать другие типы, такие как JSON, YAML, properties ...


 1. Log4j will inspect the "log4j.configurationFile" system property and, if set, will attempt to load the configuration using the ConfigurationFactory that matches the file extension. Note that this is not restricted to a location on the local file system and may contain a URL.
 2. If no system property is set the properties ConfigurationFactory will look for log4j2-test.properties in the classpath.
 3. If no such file is found the YAML ConfigurationFactory will look for log4j2-test.yaml or log4j2-test.yml in the classpath. 
 4. If no such file is found the JSON ConfigurationFactory will look for log4j2-test.json or log4j2-test.jsn in the classpath. 
 5. If no such file is found the XML ConfigurationFactory will look for log4j2-test.xml in the classpath. 
 6. If a test file cannot be located the properties ConfigurationFactory will look for log4j2.properties on the classpath. 
 7. If a properties file cannot be located the YAML ConfigurationFactory will look for log4j2.yaml or log4j2.yml on the classpath.
 8. If a YAML file cannot be located the JSON ConfigurationFactory will look for log4j2.json or log4j2.jsn on the classpath.
 9. If a JSON file cannot be located the XML ConfigurationFactory will try to locate log4j2.xml on the classpath.
 10. If no configuration file could be located the DefaultConfiguration will be used. This will cause logging output to go to the console.

ссылка: Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...