<?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 status="WARN">

  <appenders>

    <Console name="main" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger - %msg%n"/>
    </Console>
    
  </appenders>

  <loggers>

    <asyncLogger name="org.apache.syncope.client.lib" additivity="false" level="OFF">
      <appender-ref ref="main"/>
    </asyncLogger>

    <asyncLogger name="org.apache.syncope.client.enduser" additivity="false" level="ERROR">
      <appender-ref ref="main"/>
    </asyncLogger>

    <asyncLogger name="org.apache.wicket" additivity="false" level="ERROR">
      <appender-ref ref="main"/>
    </asyncLogger>
    
    <asyncLogger name="org.apache.cxf" additivity="false" level="ERROR">
      <appender-ref ref="main"/>
    </asyncLogger>
    
    <root level="ERROR">
      <appender-ref ref="main"/>
    </root>
  
  </loggers>
  
</configuration>
