<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~ 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.
  -->
<plexus>
  <components>

    <!--
     | Logger manager
     -->
    <component>
      <role>org.codehaus.plexus.logging.LoggerManager</role>
      <implementation>org.codehaus.plexus.logging.log4j.Log4JLoggerManager</implementation>
      <lifecycle-handler>basic</lifecycle-handler>

      <configuration>
        <threshold>INFO</threshold>
        <default-appender>console</default-appender>

        <appenders>
          <appender>
            <id>console</id>
            <type>org.apache.log4j.ConsoleAppender</type>
            <conversion-pattern>%d [%t] %-5p %c - %m%n</conversion-pattern>
          </appender>
        </appenders>

        <levels>
          <!-- Help identify bugs during testing -->
          <level>
            <hierarchy>org.apache.maven.continuum</hierarchy>
            <level>DEBUG</level>
          </level>
          <level>
            <hierarchy>org.apache.maven</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder:maven-two-builder</hierarchy>
            <level>DEBUG</level>
          </level>          
          <level>
            <hierarchy>org.codehaus.plexus.redback</hierarchy>
            <level>INFO</level>
          </level>
          <!-- squelch noisy objects (for now) -->
          <level>
            <hierarchy>org.codehaus.plexus.mailsender.MailSender</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>org.quartz</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>org.apache.jasper</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>com.opensymphony.xwork</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <!-- CONTINUUM-1228 -->
            <hierarchy>com.opensymphony.xwork.util.OgnlUtil</hierarchy>
            <level>ERROR</level>
          </level>
          <level>
            <hierarchy>com.opensymphony.webwork</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>org.codehaus.plexus.PlexusContainer</hierarchy>
            <level>INFO</level>
          </level>
          <level>
            <hierarchy>JPOX</hierarchy>
            <level>WARN</level>
          </level>
          <level>
            <hierarchy>JPOX.MetaData</hierarchy>
            <level>ERROR</level>
          </level>
          <level>
            <hierarchy>JPOX.RDBMS.SQL</hierarchy>
            <level>ERROR</level>
          </level>
          <level>
            <hierarchy>SQL</hierarchy>
            <level>ERROR</level>
          </level>
          <level>
            <hierarchy>freemarker</hierarchy>
            <level>WARN</level>
          </level>
          <level>
            <hierarchy>org.codehaus.plexus.component.manager.ClassicSingletonComponentManager</hierarchy>
            <level>ERROR</level>
          </level>
        </levels>
      </configuration>
    </component>    
  </components>
</plexus>