2014-01-16 4 views
0

Это мой XML-файлLog4j2 XML не получают класс пути

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<configuration> 
    <Appenders> 
     <RollingFile name="MSIFatalFile" fileName="Fatal.log" 
      filePattern="Fatal-%i.log"> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="10 MB"/> 
      </Policies> 
      <PatternLayout pattern="[%d{ISO8601}] %-5level %logger{6} - %msg%n"/> 
     </RollingFile> 
     <RollingFile name="MSIErrorFile" fileName="Error.log" 
      filePattern="Error-%i.log"> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="10 MB"/> 
      </Policies> 
      <PatternLayout pattern="[%d{ISO8601}] %-5level %logger{6} - %msg%n"/> 
     </RollingFile> 
     <RollingFile name="MISFile" fileName="MIS.log" 
      filePattern="MIS-%i.log"> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="10 MB"/> 
      </Policies> 
      <PatternLayout pattern="[%d{ISO8601}] %-5level %logger{6} - %msg%n"/> 
     </RollingFile> 
    </Appenders> 
    <loggers> 
     <logger name="fatalLogger" level="ALL" additivity="false"> 
      <appender-ref ref="MSIFatalFile" /> 
     </logger> 

     <logger name="errorLogger" level="ALL" additivity="false"> 
      <appender-ref ref="MSIErrorFile" /> 
     </logger> 

     <logger name="misLogger" level="ALL" additivity="false"> 
      <appender-ref ref="MISFile" /> 
     </logger> 

    </loggers> 

</configuration> 

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

Я установил clsspath всех баночки и XML каталог, System.setProprty("java.class.path", path)

но did't работу. PLS предложить то, что я делаю неправильно здесь.

Обновление пробовал все возможные пути, но не смог установить путь к классу (или ссылочный файл, который больше подходит, я думаю) xml-файл, находящийся во внешней папке. Проблема в том, что окружающая среда, которую она получает, когда я размещаю ее на уровне проекта, как она будет выглядеть, когда я поместил ее во внешнюю папку.

+0

Установите свой «внешний каталог» в путь класса. – CycDemo

+0

@CycDemo Как это сделать программно, я сделал это с помощью System.setProprty («java.class.path», path) и UrlClassLoader, но он не работает. Поскольку я помещаю это во внешнюю папку, и он не обновляется. и когда я помещаю его на свой уровень проекта, он становится ожесточенным. – RTA

ответ

0

Вы можете использовать DOMConfigurator.configure("log4j.xml") для загрузки файла конфигурации

+0

он не работает в моем случае. – RTA

0

Посмотрите на Default Initialization Procedure из log4j (1). Используйте системное свойство log4j.configuration, чтобы указать файл инициализации и установить системное свойство log4j.debug, чтобы получить еще один отладочный вывод log4j. В этом выпуске вы найдете информацию о фазе инициализации log4j.

т.д .:

java -cp C:\myApp\lib\*; -Dlog4j.configuration=C:\myApp\etc\log4j.xml -Dlog4j.debug MyMainClass 
+0

не работает для меня. – RTA

+0

@RTA И что не так? Что такое отладочный вывод log4j? – FrVaBe

0

Свяжите XML везде, где это. может использовать System.setProperty («log4j.configuration», xmlpath).

это работает в моем случае.

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