Я хотел бы программно настроить расположение файлов журнала. Таким образом, я хочу перезаписать значения по умолчанию в моем файле log4j.properties
. Это не противоречит каким-либо проблемам. Я использую LogManager.resetConfiguration()
и PropertyConfigurator.configure(props)
, чтобы мои местоположения файлов обновлялись (хранились в реквизитах). Эта методология работает, файлы журналов с этого момента записываются в новое местоположение файла.
Моя проблема возникает при использовании Weld. Это связано с тем, что внутри Weld также используется регистратор, указанный в моем файле регистрации: 2014-08-13 12:55:15.589 [main:0] DEBUG Weld.java:84 Method: <clinit> - Logging Provider: org.jboss.logging.Log4jLoggerProvider
.
Поскольку я использую org.jboss.weld.environment.se.StartMain
в качестве основного класса, я не имею никакого влияния на возможности регистрации Weld. Теперь у меня есть 3 файла журнала (как описано в моих log4j.properties) в 2 разных местах. В то время как один содержит некоторую информацию об отладке Weld, а другой содержит всю информацию о журнале, начиная с инициализации и далее.
Таким образом, логически я хотел бы получить только 1 каталог с файлами журналов, чтобы Weld адаптировался к новому местоположению файла log4j. Или иметь log4j для копирования старого содержимого журнала, создания новых файлов журнала + со старым содержимым и удаления старых файлов журнала.
Я не хочу использовать аргументы VM, так как мне нужно программно назначать места ведения журналов.