Миграция из log4j в log4j2 - FileAppender устанавливает новое имя файла & acitvateOptions - PullRequest
0 голосов
/ 10 мая 2018

Мы переходим на log4j2.Я нигде не могу найти, как переписать часть кода.

LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
Configuration config = context.getConfiguration();
RollingFileAppender fileAppender = config.getAppender("file");

(...)

fileAppender.setFile(newFileName); //this part
fileAppender.activateOptions(); //and this part

Кто-нибудь знает, как правильно писать?Любая помощь будет принята с благодарностью, и я извиняюсь, если это глупый вопрос.

РЕДАКТИРОВАТЬ: У меня также есть проблема с моим классом, который (с log4j v.1) реализует LoggerFactory.Я нашел здесь: log4j миграция на log4j2 , что я должен использовать «другой механизм».Я не уверен, стоит ли мне использовать LoggerContextFactory здесь или что-то еще:

class MyNameLoggerFactory implements LoggerFactory {
    (...)
    void init() {
       //sets quiet mode
       //init DOMConfigutator
       //configure using log4j config xml
    }

    Appender getFileAppender(File file) {
        //returns a FileAppender
    }

    @Override
    public MyNameLoggerFactory makeNewLoggerInstance(String name) {
        return new MyNameLoggerFactory (name);
    }
}

Загруженная здесь конфигурация XML имеет такие вспомогательные элементы, как EmailSender, ConsoleAppender и RollingFileAppender (я думаю, мне понадобится также преобразовать xml),Если я понял это Как правильно указать расположение конфигурации Log4J 2.x? , вместо DOMConfigurator я буду использовать (в моем методе init) метод инициализации с нулевым ClassLoader?

Этодействительно старый проект, написанный многими разными людьми за эти годы, и это беспорядок.Спасибо за любую помощь.

...