<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ /*
  ~  * Licensed to the Apache Software Foundation (ASF) under one or more
  ~  * contributor license agreements.  See the NOTICE file distributed with
  ~  * this work for additional information regarding copyright ownership.
  ~  * The ASF licenses this file to You under the Apache License, Version 2.0
  ~  * (the "License"); you may not use this file except in compliance with
  ~  * the License.  You may obtain a copy of the License at
  ~  *
  ~  *     http://www.apache.org/licenses/LICENSE-2.0
  ~  *
  ~  * Unless required by applicable law or agreed to in writing, software
  ~  * distributed under the License is distributed on an "AS IS" BASIS,
  ~  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~  * See the License for the specific language governing permissions and
  ~  * limitations under the License.
  ~  */
  -->

<configuration scan="true" scanPeriod="30 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
	
	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
        </encoder>
	</appender>

    <logger name="org.apache.nifi.minifi.c2" level="DEBUG"/>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
    
</configuration>
