2016-11-04 2 views
2

Я использую logback как реализацию с интерфейсом SL4j. Вот конфигурацияИзменить уровень журнала во время выполнения без перезагрузки сервера?

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>logs/prod.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">   
     <FileNamePattern>logs/prod.%d{yyyy-MM-dd}.%i.log</FileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>700MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender> 


    <logger name="com.ecom" additivity="false" level="ERROR"> 
     <appender-ref ref="FILE" /> 
    </logger> 

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

FYI, я использую Weblogic как сервер приложений, а также пружинные рамки для других целей>

+0

Но это программный подход. Я ищу изменение конфигурации/свойства файла. – user3198603

+0

Возможный дубликат [Изменить уровень журнала в журнале во время выполнения через внешний файл свойств] (http://stackoverflow.com/questions/30976870/change- log-level-in-logback-at-run-time-through-external-property-file) – Joe

ответ

0

Variable substitution является вашим другом здесь. Default values for variables также должен быть полезен.

См. Также variable scoping.

+0

в приведенных примерах, подстановка переменных используется для указания, где будет создан файл журнала. Как его можно использовать для изменения уровня журнала во время выполнения? Вы хотите создать файл внешних свойств, например ', который будет содержать некоторое свойство типа LOG_LEVEL = DEBUG', а затем использовать его' '? ' – user3198603

+0

Переменные подстановки работают и для атрибута уровня. Я также изменил свой ответ выше. – Ceki

1

Есть два способа экстернализовать уровень журналирования

  1. Один на с уровнем системы собственностью т.е. java -Dlogback.configurationFile=/pathToconfig.xml. См. How to externalize the log level

  2. <root level="${log.level:-Error}">. Затем установите свойство системного уровня -Dlog.level=DEBUG

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