## ---------------------------------------------------------------------------
## 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.
## ---------------------------------------------------------------------------

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n

appender.file.type = File
appender.file.name = file
appender.file.fileName = target/camel-core-test.log
appender.file.append = true
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n

appender.file2.type = File
appender.file2.name = file2
appender.file2.fileName = target/custom-logger-test.log
appender.file2.append = false
appender.file2.layout.type = PatternLayout
appender.file2.layout.pattern = %-5p %c{1} %m%n

logger.customlogger.name = org.apache.camel.customlogger
logger.customlogger.level = TRACE
logger.customlogger.appenderRef.file2.ref = file2

rootLogger.level = INFO
rootLogger.appenderRef.file.ref = file


#log4j.logger.org.apache.camel.impl.converter=WARN
#log4j.logger.org.apache.camel.management=DEBUG
#log4j.logger.org.apache.camel.impl.DefaultPackageScanClassResolver=WARN
#log4j.logger.org.apache.camel.impl.converter.DefaultTypeConverter=TRACE
#log4j.logger.org.apache.camel.impl.converter=DEBUG
#log4j.logger.org.apache.camel=DEBUG
#log4j.logger.org.apache.camel.builder=TRACE
#log4j.logger.org.apache.camel.language.simple=TRACE
#log4j.logger.org.apache.camel.component=TRACE
#log4j.logger.org.apache.camel.component.seda=TRACE
#log4j.logger.org.apache.camel.component.file=TRACE
#log4j.logger.org.apache.camel.impl.DefaultUnitOfWork=TRACE
#log4j.logger.org.apache.camel.impl.DefaultExecutorServiceManager=TRACE
#log4j.logger.org.apache.camel.impl.DefaultShutdownStrategy=DEBUG
#log4j.logger.org.apache.camel.component.mock=DEBUG
#log4j.logger.org.apache.camel.component.file=TRACE
#log4j.logger.org.apache.camel.processor.DefaultErrorHandler=TRACE
#log4j.logger.org.apache.camel.processor.DeadLetterChannel=TRACE
#log4j.logger.org.apache.camel.processor.Pipeline=TRACE
#log4j.logger.org.apache.camel.processor.MulticastProcessor=TRACE
#log4j.logger.org.apache.camel.processor.RecipientList=TRACE
#log4j.logger.org.apache.camel.processor.RecipientListProcessor=TRACE
#log4j.logger.org.apache.camel.processor.RoutingSlip=TRACE
#log4j.logger.org.apache.camel.processor.TryProcessor=TRACE
#log4j.logger.org.apache.camel.processor.loadbalancer=TRACE
#log4j.logger.org.apache.camel.processor.Delayer=TRACE
#log4j.logger.org.apache.camel.processor.Throttler=TRACE
#log4j.logger.org.apache.camel.processor.aggregate.AggregateProcessor=TRACE
#log4j.logger.org.apache.camel.impl=TRACE
#log4j.logger.org.apache.camel.util.FileUtil=TRACE
#log4j.logger.org.apache.camel.util.AsyncProcessorHelper=TRACE
#log4j.logger.org.apache.camel.util.ServiceHelper=TRACE
#log4j.logger.org.apache.camel.util.jsse=TRACE

