Настройка среды выполнения журнала Log4j2

У меня есть требование, при котором мне нужно динамически изменять местоположение журнала в зависимости от параметра, полученного из командной строки. Как будто я буду получать параметр $ LogLocation от другого входа, и теперь мне нужно сгенерировать свои журналы в местоположении «$ LogLocation / test / log». Я использую log4j2.


person Rogger296    schedule 11.11.2016    source источник
comment
Возможный дубликат программного переопределения конфигурации log4j: расположение файла для FileAppender   -  person Hitham S. AlQadheeb    schedule 11.11.2016
comment
@Hitham S. AlQadheeb, тот, который вы указали выше, предназначен для log4j. У меня проблема с log4j2.   -  person Rogger296    schedule 11.11.2016
comment
Отметьте stackoverflow.com / questions / 26668938 /   -  person Hitham S. AlQadheeb    schedule 12.11.2016
comment
Я решил проблему, но переполнение стека не позволило мне отвечать.   -  person Rogger296    schedule 16.11.2016
comment
Если вы еще не можете опубликовать ответ, просто опишите решение в комментарии. Это может кому-то помочь.   -  person Hitham S. AlQadheeb    schedule 16.11.2016
comment
Решение: я использовал ThreadContext, как показано ниже. ThreadContext.put (LogLocation, commandLineArgs.get (LogLocation)); Затем загрузите конфигурацию журнала из log4j2.xml. Вышеуказанный параметр извлекается в log4j2.xml, как показано ниже ‹Properties› ‹Имя свойства = имя_файла› $$ {ctx: LogLocation} / test / log ‹/Property› ‹/Properties›, а затем используйте это «имя файла» как ‹имя RollingFile = ПРОКРУТКА имя_файла = $ {имя_файла}   -  person Rogger296    schedule 06.12.2016