title: Spring boot + Logback-logstash appender: Could not find an appender named
body: <p>I'm trying to have configurable JSON logs in a POC application, using <code>logback-logstash</code> encoder.
  Although I've defined all suggested dependencies, and reduced the logging configuration to just one logger and appender (to try to isolate the problem) I'm still getting &quot;Could not find appender x. Did you defined it above or below..&quot;</p>
  <p>I've tried removing all other loggers/appenders incrementally, until I was left with the one which 'cannot be found'.
  I, checked multiple times that the appender is defined before its referencing in the logger definition.
  I'm running tests for the moment, so I've created an explicit logback-tests.xml with the same config as logback.xml.
  I've initially set all the dependencies inside  but as instructed in logback-logstash encoder docu, I't better to have them managed by the dependencyManagement</p>
  <p>Dependencies:</p>
  <pre><code>&lt;parent&gt;
      &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
      &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
      &lt;version&gt;2.1.1.RELEASE&lt;/version&gt;
      &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;
  &lt;/parent&gt;
  &lt;/properties&gt;
  ... 
      &lt;logback.jackson.json&gt;0.1.5&lt;/logback.jackson.json&gt;
      &lt;logstash-logback-encoder.version&gt;5.2&lt;/logstash-logback-encoder.version&gt;
      &lt;ch.qos.logback.version&gt;1.2.3&lt;/ch.qos.logback.version&gt;
  &lt;/properties&gt;
  
  &lt;dependencyManagement&gt;
  ...
     &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
              &lt;artifactId&gt;logback-core&lt;/artifactId&gt;
              &lt;version&gt;${ch.qos.logback.version}&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
              &lt;artifactId&gt;logback-classic&lt;/artifactId&gt;
              &lt;version&gt;${ch.qos.logback.version}&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
              &lt;artifactId&gt;logback-access&lt;/artifactId&gt;
              &lt;version&gt;${ch.qos.logback.version}&lt;/version&gt;
          &lt;/dependency&gt;
      &lt;/dependencies&gt;
  &lt;/dependencyManagement&gt;    
  
  &lt;dependencies&gt;
  ...
      &lt;!-- ======= --&gt;
      &lt;!-- Logging --&gt;
      &lt;!-- ======= --&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
          &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;ch.qos.logback.contrib&lt;/groupId&gt;
          &lt;artifactId&gt;logback-jackson&lt;/artifactId&gt;
          &lt;version&gt;${logback.jackson.json}&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;ch.qos.logback.contrib&lt;/groupId&gt;
          &lt;artifactId&gt;logback-json-classic&lt;/artifactId&gt;
          &lt;version&gt;${logback.jackson.json}&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;net.logstash.logback&lt;/groupId&gt;
          &lt;artifactId&gt;logstash-logback-encoder&lt;/artifactId&gt;
          &lt;version&gt;${logstash-logback-encoder.version}&lt;/version&gt;
      &lt;/dependency&gt;
  ...
  &lt;/dependencies&gt;
  </code></pre>
  <p>Code:</p>
  <pre><code>@Service
  public class UserService {
  ....
  private final Logger log = LoggerFactory.getLogger(&quot;AuditLogger&quot;);
  
    public User findByUsername(String username){
  
        User user = userRepo.findByUsername(username);
        log.info(&quot;method triggered&quot;);
        return user;
    }
  }
  
  
  @RunWith(SpringRunner.class)
  @SpringBootTest
  public class UserServiceTest {
  
      @Autowired
      private UserService userService;
  
      @Test
      public void  testFindUser(){
          Assert.assertNotNull(
              userService.findByUsername(&quot;jason.hickle&quot;));
      }
  }
  </code></pre>
  <p>Logback.xml configuration:</p>
  <pre><code>&lt;configuration debug=&quot;true&quot; scan=&quot;true&quot; scanPeriod=&quot;60 seconds&quot;&gt;
  &lt;!--scanning picks up configuraiton changes at runtime, following he interval--&gt;
  
  &lt;property name=&quot;LOG_DIR&quot; value=&quot;./logs&quot;&gt;&lt;/property&gt;
  
  &lt;property name=&quot;LOG_FILE&quot; value=&quot;LogFile&quot; /&gt;
  
  &lt;appender name=&quot;PLAIN_FILE_JSON &quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
      &lt;file&gt;@{LOG_DIR}/tests.log&lt;/file&gt;
      &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
          &lt;FileNamePattern&gt;@{LOG_FILE}.json.log.%i&lt;/FileNamePattern&gt;
          &lt;maxIndex&gt;10&lt;/maxIndex&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder class=&quot;net.logstash.logback.encoder.LogstashEncoder&quot;/&gt;
      &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
          &lt;MaxFileSize&gt;20MB&lt;/MaxFileSize&gt;
      &lt;/triggeringPolicy&gt;
  &lt;/appender&gt;
  
  
  &lt;logger name=&quot;AuditLogger&quot; level=&quot;DEBUG&quot; additivity=&quot;false&quot;&gt;
      &lt;appender-ref ref=&quot;PLAIN_FILE_JSON&quot;/&gt;
  &lt;/logger&gt;
  </code></pre>
  
  <pre><code> edu.octavian.management.UserServiceTest,testFindUser
  
  12:41:38,122 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
  12:41:38,122 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
  12:41:38,122 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Repository/Management/target/classes/logback.xml]
  12:41:38,263 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/C:/Repository/Management/target/classes/logback.xml] 
  12:41:38,263 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 minutes
  12:41:38,263 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/base.xml] to configuration watch list.
  12:41:38,263 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@548a9f61 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/base.xml] is not of type file
  12:41:38,263 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/defaults.xml] to configuration watch list.
  12:41:38,263 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@548a9f61 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/defaults.xml] is not of type file
  12:41:38,278 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word clr with class [org.springframework.boot.logging.logback.ColorConverter]
  12:41:38,278 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word wex with class [org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter]
  12:41:38,278 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word wEx with class [org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter]
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.catalina.startup.DigesterFactory] to ERROR
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.catalina.util.LifecycleBase] to ERROR
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.coyote.http11.Http11NioProtocol] to WARN
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.sshd.common.util.SecurityUtils] to WARN
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.tomcat.util.net.NioSelectorPool] to WARN
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty.util.component.AbstractLifeCycle] to ERROR
  12:41:38,278 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.validator.internal.util.Version] to WARN
  12:41:38,278 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/console-appender.xml] to configuration watch list.
  12:41:38,278 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@548a9f61 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/console-appender.xml] is not of type file
  12:41:38,294 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
  12:41:38,294 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
  12:41:38,294 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
  12:41:38,356 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/file-appender.xml] to configuration watch list.
  12:41:38,356 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@548a9f61 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/file-appender.xml] is not of type file
  12:41:38,356 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
  12:41:38,356 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
  12:41:38,356 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
  12:41:38,372 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@157683534 - Archive files will be limited to [10 MB] each.
  12:41:38,372 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@157683534 - Will use gz compression
  12:41:38,372 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@157683534 - Will use the pattern C:/Users/octavian/AppData/Local/Temp//spring.log.%d{yyyy-MM-dd}.%i for the active file
  12:41:38,372 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@23faf8f2 - The date pattern is 'yyyy-MM-dd' from file name pattern 'C:/Users/octavian/AppData/Local/Temp//spring.log.%d{yyyy-MM-dd}.%i.gz'.
  12:41:38,372 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@23faf8f2 - Roll-over at midnight.
  12:41:38,388 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@23faf8f2 - Setting initial period to Sun Jan 20 12:29:56 EET 2019
  12:41:38,388 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: C:\Users\octavian\AppData\Local\Temp\/spring.log
  12:41:38,388 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [C:\Users\octavian\AppData\Local\Temp\/spring.log]
  12:41:38,388 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
  12:41:38,388 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
  12:41:38,388 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
  12:41:38,388 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
  12:41:38,388 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [PLAIN_FILE_JSON ]
  12:41:38,403 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@1786dec2 - No compression will be used
  12:41:38,700 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[PLAIN_FILE_JSON ] - Active log file name: @{LOG_DIR}/tests.log
  12:41:38,700 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[PLAIN_FILE_JSON ] - File property is set to [@{LOG_DIR}/tests.log]
  12:41:38,700 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [AuditLogger] to DEBUG
  12:41:38,700 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [AuditLogger] to false
  12:41:38,700 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [PLAIN_FILE_JSON]. Did you define it below instead of above in the configuration file?
  12:41:38,700 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.
  12:41:38,700 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
  12:41:38,700 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2bbf180e - Registering current configuration as safe fallback point
  2019-01-20 12:41:38.950  INFO   --- [           main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.octavian.management.UserServiceTest], using SpringBootContextLoader
  2019-01-20 12:41:38.966  INFO   --- [           main] o.s.t.c.support.AbstractContextLoader    : Could not detect default resource locations for test class [edu.octavian.management.UserServiceTest]: no resource found for suffixes {-context.xml, Context.groovy}.
  2019-01-20 12:41:38.966  INFO   --- [           main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [edu.octavian.management.UserServiceTest]: UserServiceTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
  2019-01-20 12:41:39.247  INFO   --- [           main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration edu.octavian.management.ManagementApplication for test class edu.octavian.management.UserServiceTest
  2019-01-20 12:41:39.403  INFO   --- [           main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
  2019-01-20 12:41:39.419  INFO   --- [           main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@61710c6, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3214ee6, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@383dc82c, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a07d605, org.springframework.test.context.support.DirtiesContextTestExecutionListener@74287ea3, org.springframework.test.context.transaction.TransactionalTestExecutionListener@7d7758be, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@2bdd8394, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@5f9edf14, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@68746f22, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@2f01783a, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@68878f6d, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@41488b16]12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/C:/Repository/Management/target/classes/logback.xml] 
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 minutes
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/base.xml] to configuration watch list.
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@421bba99 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/base.xml] is not of type file
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/defaults.xml] to configuration watch list.
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@421bba99 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/defaults.xml] is not of type file
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word clr with class [org.springframework.boot.logging.logback.ColorConverter]
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word wex with class [org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter]
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.action.ConversionRuleAction - registering conversion word wEx with class [org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter]
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.catalina.startup.DigesterFactory] to ERROR
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating ERROR level on Logger[org.apache.catalina.startup.DigesterFactory] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.catalina.util.LifecycleBase] to ERROR
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating ERROR level on Logger[org.apache.catalina.util.LifecycleBase] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.coyote.http11.Http11NioProtocol] to WARN
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating WARN level on Logger[org.apache.coyote.http11.Http11NioProtocol] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.sshd.common.util.SecurityUtils] to WARN
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating WARN level on Logger[org.apache.sshd.common.util.SecurityUtils] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.tomcat.util.net.NioSelectorPool] to WARN
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating WARN level on Logger[org.apache.tomcat.util.net.NioSelectorPool] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty.util.component.AbstractLifeCycle] to ERROR
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating ERROR level on Logger[org.eclipse.jetty.util.component.AbstractLifeCycle] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.hibernate.validator.internal.util.Version] to WARN
  12:41:39,747 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating WARN level on Logger[org.hibernate.validator.internal.util.Version] onto the JUL framework
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/console-appender.xml] to configuration watch list.
  12:41:39,747 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@421bba99 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/console-appender.xml] is not of type file
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.util.ConfigurationWatchListUtil@4f933fd1 - Adding [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/file-appender.xml] to configuration watch list.
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@421bba99 - URL [jar:file:/C:/Users/octavian/.m2/repository/org/springframework/boot/spring-boot/2.1.1.RELEASE/spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/file-appender.xml] is not of type file
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
  12:41:39,762 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
  12:41:39,762 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1327234595 - Archive files will be limited to [10 MB] each.
  12:41:39,762 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1327234595 - Will use gz compression
  12:41:39,762 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1327234595 - Will use the pattern C:/Users/octavian/AppData/Local/Temp//spring.log.%d{yyyy-MM-dd}.%i for the active file
  12:41:39,762 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@e19bb76 - The date pattern is 'yyyy-MM-dd' from file name pattern 'C:/Users/octavian/AppData/Local/Temp//spring.log.%d{yyyy-MM-dd}.%i.gz'.
  12:41:39,762 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@e19bb76 - Roll-over at midnight.
  12:41:39,762 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@e19bb76 - Setting initial period to Sun Jan 20 12:41:39 EET 2019
  12:41:39,809 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: C:\Users\octavian\AppData\Local\Temp\/spring.log
  12:41:39,809 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [C:\Users\octavian\AppData\Local\Temp\/spring.log]
  12:41:39,809 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
  12:41:39,809 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating INFO level on Logger[ROOT] onto the JUL framework
  12:41:39,809 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
  12:41:39,809 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
  12:41:39,809 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
  12:41:39,809 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [PLAIN_FILE_JSON ]
  12:41:39,809 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@71529963 - No compression will be used
  12:41:39,809 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[PLAIN_FILE_JSON ] - Active log file name: @{LOG_DIR}/tests.log
  12:41:39,809 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[PLAIN_FILE_JSON ] - File property is set to [@{LOG_DIR}/tests.log]
  12:41:39,809 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [AuditLogger] to DEBUG
  12:41:39,809 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@31bcf236 - Propagating DEBUG level on Logger[AuditLogger] onto the JUL framework
  12:41:39,809 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [AuditLogger] to false
  12:41:39,809 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [PLAIN_FILE_JSON]. Did you define it below instead of above in the configuration file?
  12:41:39,809 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.
  12:41:39,809 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
  12:41:39,809 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@22295ec4 - Registering current configuration as safe fallback point
  2019-01-20 12:41:40.122 ERROR 10428 --- [           main] o.s.boot.SpringApplication               : Application run failed
  
  java.lang.IllegalStateException: Logback configuration error detected: 
  ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [PLAIN_FILE_JSON]. Did you define it below instead of above in the configuration file?
  ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.
      
      --spring boot wrapper errors--
      
  2019-01-20 12:41:40.122 ERROR 10428 --- [           main] o.s.test.context.TestContextManager      : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@61710c6] to prepare test instance [edu.octavian.management.UserServiceTest@5dd1c9f2]
  </code></pre>