title: Logback configuration live reload (scan=true) with Spring-Boot
body: <p>Okay guys I am trying to configure a a <code>logback-spring.xml</code>.</p>
  
  <p>My goal is to automatically reload the configuration file upon modification. </p>
  
  <p>So this is what the <a href="http://logback.qos.ch/manual/configuration.html" rel="nofollow noreferrer">doc</a> says :</p>
  
  <p>FROM:</p>
  
  <pre><code>&lt;configuration&gt;
    ...
  &lt;/configuration&gt;
  </code></pre>
  
  <p>TO:</p>
  
  <pre><code>&lt;configuration scan="true" scanPeriod="30 seconds"&gt;
    ...
  &lt;/configuration&gt;
  </code></pre>
  
  <p>There is no doubt that if I do not use any elements as :</p>
  
  <pre><code>&lt;springProperty&gt;
  </code></pre>
  
  <p>OR</p>
  
  <pre><code>&lt;springProfile&gt;
  </code></pre>
  
  <p>The live reload works with no problems. Also if I am not using  the <code>scan="true"</code> <code>springProfile</code> and <code>springProperty</code> are working perfectly as well.</p>
  
  <p>So my conclusion is that <code>spring</code> elements and <code>scan</code> do not like each other. I am getting errors from the type : </p>
  
  <pre><code>16:29:39,101 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@12:125 - no applicable action for [springProperty], current ElementPath  is [[configuration][springProperty]]
  16:29:39,102 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@16:109 - no applicable action for [springProperty], current ElementPath  is [[configuration][springProperty]]
  16:29:39,102 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:64 - no applicable action for [springProperty], current ElementPath  is [[configuration][springProperty]]
  16:29:39,103 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@33:29 - no applicable action for [springProfile], current ElementPath  is [[configuration][springProfile]]
  16:29:39,103 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@34:70 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,103 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@35:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,103 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@36:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,104 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@38:12 - no applicable action for [append], current ElementPath  is [[configuration][springProfile][appender][append]]
  16:29:39,104 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@39:10 - no applicable action for [file], current ElementPath  is [[configuration][springProfile][appender][file]]
  16:29:39,104 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@42:70 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,104 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@43:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,104 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@44:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,105 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@46:12 - no applicable action for [append], current ElementPath  is [[configuration][springProfile][appender][append]]
  16:29:39,105 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@47:10 - no applicable action for [file], current ElementPath  is [[configuration][springProfile][appender][file]]
  16:29:39,105 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@50:70 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,105 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@51:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,106 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@52:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,106 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@54:12 - no applicable action for [append], current ElementPath  is [[configuration][springProfile][appender][append]]
  16:29:39,106 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@55:10 - no applicable action for [file], current ElementPath  is [[configuration][springProfile][appender][file]]
  16:29:39,106 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@58:70 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,106 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@59:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@60:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@62:12 - no applicable action for [append], current ElementPath  is [[configuration][springProfile][appender][append]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@63:10 - no applicable action for [file], current ElementPath  is [[configuration][springProfile][appender][file]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@66:70 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@67:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,107 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@68:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@70:12 - no applicable action for [append], current ElementPath  is [[configuration][springProfile][appender][append]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@71:10 - no applicable action for [file], current ElementPath  is [[configuration][springProfile][appender][file]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@74:53 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@75:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@78:54 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@79:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@84:23 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,108 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@85:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@91:37 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@92:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@95:54 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@96:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@99:54 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@100:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@103:23 - no applicable action for [root], current ElementPath  is [[configuration][springProfile][root]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@104:35 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][root][appender-ref]]
  16:29:39,109 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@109:28 - no applicable action for [springProfile], current ElementPath  is [[configuration][springProfile]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@110:72 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@111:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@112:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@113:14 - no applicable action for [charset], current ElementPath  is [[configuration][springProfile][appender][encoder][charset]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@117:76 - no applicable action for [appender], current ElementPath  is [[configuration][springProfile][appender]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@118:13 - no applicable action for [encoder], current ElementPath  is [[configuration][springProfile][appender][encoder]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@119:14 - no applicable action for [pattern], current ElementPath  is [[configuration][springProfile][appender][encoder][pattern]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@120:14 - no applicable action for [charset], current ElementPath  is [[configuration][springProfile][appender][encoder][charset]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@124:54 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]
  16:29:39,110 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@125:38 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][logger][appender-ref]]
  16:29:39,111 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@128:23 - no applicable action for [root], current ElementPath  is [[configuration][springProfile][root]]
  16:29:39,111 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@129:34 - no applicable action for [appender-ref], current ElementPath  is [[configuration][springProfile][root][appender-ref]]
  </code></pre>
  
  <p>So as I already said if I remove <code>scan=true</code> the configuration works. If I remove springProfiles and properties and leave <code>scan=true</code> the configuration works again but with BOTH somethings is not right?</p>
  
  <p>I assume the fact that it is most likely impossible to do so but did someone find a way of doing it? </p>
  
  <p><strong>EDIT</strong>: Close to a week after I posted my question Spring updated their <a href="https://github.com/spring-projects/spring-boot/commit/0463350d2e0a02e649b93720493f722111ff5539" rel="nofollow noreferrer">documentation</a>. Still I am looking for answer and I asume that there can be a way maybe using some middle layer of property file between Spring properties and logback configuration file because as the logback documentation says you can import property files into the configuration. But still even if so the problem with <code>springProfile</code> remains.</p>