<?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 monitorInterval="60">
   <Appenders>

      <properties>
         <property name="filters">net.sf.cglib.proxy</property>
      </properties>

      <!-- ============================== -->
      <!-- Append messages to the console -->
      <!-- ============================== -->

      <Console name="CONSOLE" target="SYSTEM_OUT">
         <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
         <PatternLayout pattern="%d{DEFAULT} %-5p [%c{3}] (%t:%x) %m%xEx{filters(${filters})}%n"/>
      </Console>
   </Appenders>

   <Loggers>

      <!-- ================ -->
      <!-- Limit categories -->
      <!-- ================ -->

      <Logger name="com.cloud" level="DEBUG"/>

      <Logger name="org.apache.cloudstack" level="DEBUG"/>

      <Logger name="org.apache.directory" level="WARN"/>

      <Logger name="org.apache.directory.api.ldap.model.entry.Value" level="FATAL"/>

      <Logger name="org.apache.directory.api.ldap.model.entry.DefaultAttribute" level="FATAL"/>

      <!-- ======================= -->
      <!-- Setup the Root category -->
      <!-- ======================= -->

      <Root level="INFO">
         <AppenderRef ref="CONSOLE"/>
      </Root>

   </Loggers>
</Configuration>
