2014-12-11 2 views
1

Уверен, что на этот вопрос ответил несколько раз. Но почему-то это не работает для меня.Как изменить имя файла журнала log4j динамически

My appender - это что-то вроде этого.

<appender name="myAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="Threshold" value="DEBUG"/> 
    <param name="File" value="D:\\out\\MyApp_${output}.log"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
    <param name="Append" value="true"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{DATE} %5p %C{1}:%L - %m%n"/> 
    </layout> 
</appender> 

Я устанавливаю системное свойство перед созданием регистратора.

System.setProperty («output», «abc»);

Затем я создаю регистратор следующим образом.

logger = Logger.getLogger ("myAppender");

Но выходной файл генерируется только так.

MyApp_.log

ли я что-то отсутствует? Заранее спасибо.

ответ

0

Вы пытались -Doutput = abc во время запуска?

Вот еще одна тема с аналогичной проблемой, которая может вам помочь.

How to give environmental variable path for file appender in configuration file in log4j

+0

Я не могу использовать эту опцию, так как я не знаю значение при запуске. – Shan

+0

Похоже, мы должны инициализировать файл log4j после установки системного свойства. – Shan

+0

System.setProperty («output», «abc»); а затем DOMConfigurator.configure («MyLog4j.xml») – Shan

Смежные вопросы