<?xml version="1.0"?>
<!--
* Copyright 2001-2009 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.
*
*/ -->
<configuration>
    <startup> 
        
    <supportedRuntime version="v2.0.50727"/></startup>
  <appSettings>
    <add key="org.apache.juddi.v3.client.log.level" value="DEBUG" />
    <!-- options are CONSOLE, EVENTLOG, FILE-->
    <add key="org.apache.juddi.v3.client.log.target" value="CONSOLE" />
  </appSettings>
</configuration>
