2016-12-21 9 views
0

У меня есть logback.xml, настроенный в проекте MVC + hibernate с пружиной, он отлично работает на моей локальной машине. на локальной машине установлено Windows 10 OS.Как сделать динамическое расположение пути в xml

Я хочу запустить код производственной машины, который имеет Linux установлен.

Что нужно знать, Есть ли способ сделать LOG_PATH и LOG_ARCHIVE местами динамическими в зависимости от ОС? Так что, когда код будет развернут на производственной машине, мне не придется вручную изменять местоположение пути.

Любая помощь приветствуется, дайте мне знать, если что-то еще необходимо. Заранее спасибо. : D

<?xml version="1.0" encoding="UTF-8"?> 
<configuration debug="true" scan="true" scanPeriod="30 seconds"> 
    <property name="LOG_PATH" value="D:/coinLogs" /> 
    <property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" /> 

    <appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout> 
      <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n</pattern> 
     </layout> 
    </appender> 

    <appender name="File-Appender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_PATH}/logfile.log</file> 
     <encoder> 
      <pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n 
      </pattern> 
      <outputPatternAsHeader>true</outputPatternAsHeader> 
     </encoder> 

     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <!-- rollover daily --> 
      <fileNamePattern>${LOG_ARCHIVE}/rollingfile.log.%d{yyyy-MM-dd}.log 
      </fileNamePattern> 
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
         <maxFileSize>10MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 
    </appender> 


    <logger name="coinPay.logbackxml" level="info" additivity="false"> 
     <appender-ref ref="Console-Appender" /> 
     <appender-ref ref="File-Appender" /> 
    </logger> 

    <!-- To remove extra hibernate logs --> 
    <logger name="org.hibernate"> 
     <level value="info" /> 
    </logger> 

    <root> 
     <appender-ref ref="Console-Appender" /> 
     <appender-ref ref="File-Appender" /> 
    </root> 

</configuration> 

ответ

1

Вы можете создать logback файл во внешнем месте и передать его как пары при запуске приложения, как показано ниже.

java -Dlogback.configurationFile=path/logback.xml MyApp 

Добавление следующей конфигурации в logback.xml будет сканировать файл каждые 30 секунд в течение каких-либо изменений. Если обнаружено изменение, он перенастроит параметры журнала.

<configuration scan="true" scanPeriod="30 seconds" > 
    ... 
</configuration> 

Теперь, если вы хотите изменить что-то вы можете напрямую изменить его в logback.xml

+0

Я хотел бы сделать «значение», данное в «<имя =„log_path“значение свойства =„D:/coinLogs“/ > 'dynamic – abhi314

+0

Я не думаю, что это сработает – Jobin