#
# Copyright 2005 The Apache Software Foundation.
# 
# Licensed 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.

#
# This is a sample properties file to configure apache commons logging SimpleLog
# implementation for the JDO TCK test cases. Below you find an entry for each of
# the JDO TCK logger instances. Please uncomment the line and adapt the log 
# level to your needs, in case to want to enable a particular logger.
#

######################
# JDO TCK test cases
######################

#org.apache.commons.logging.simplelog.log.org.apache.jdo.tck = debug

######################
# default logging level
######################

org.apache.commons.logging.simplelog.defaultlog = error


