<?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>
	<Appenders>
		<Console name="console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
		</Console>
		<File name="logfile" fileName="target/fulcrum-test.log">
			<PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
		</File>
		<File name="avalonfile" fileName="target/avalon-test.log">
			<PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
		</File>
	</Appenders>
	<Loggers>
		<Logger name="org.apache.fulcrum" level="debug"
			additivity="false">
			<AppenderRef ref="console" />
			<AppenderRef ref="logfile" />
		</Logger>
		<Logger name="org.apache.fulcrum.yaafi" level="debug"
            additivity="false">
            <AppenderRef ref="console" />
            <AppenderRef ref="avalonfile" />
        </Logger>
		<Logger name="avalon" level="debug" additivity="false">
			<AppenderRef ref="avalonfile" />
		</Logger>
		<Logger name="org.apache.logging.log4j" level="debug"
			additivity="false">
			<AppenderRef ref="logfile" />
		</Logger>
		<Root level="error">
			<AppenderRef ref="console" />
		</Root>
	</Loggers>
</Configuration>
