# /*******************************************************************************
#  * Copyright (c) 2002-2005 IBM Corporation and others.
#  * All rights reserved.   This program and the accompanying materials
#  * are made available under the terms of the Eclipse Public License v1.0
#  * which accompanies this distribution, and is available at
#  * http://www.eclipse.org/legal/epl-v10.html
#  * 
#  * Contributors: 
#  *   IBM - Initial API and implementation
#  *******************************************************************************/

#
# Monitor message resource bundle.
#
usage01=Usage: Monitor -config <configFilename>
stopped01=Monitor stopped.
error01=Monitor Error:
error02=Monitor Stopped By Exception: 
error03=Could not create log or log writer.
error04=Monitor cannot connect to a redirect host:
stopping01=Stopping the monitor...
stopping02=Stopping monitor because an exception occurred.
log01=Log message entry [ID, Type, Sender]:
start01=The Monitor tool is ready to intercept and log web service messages.
start02=Type "exit" to stop the Monitor.
exit01=exit
config01=The specified option is not supported:
config02=Monitor configuration file was not found.  Specified file location:
config03=Could not read monitor configuration file.  Specified file location:
config04=Element must contain an integer value.  Element name:
config05=Monitor configuration file did not contain any redirect statements.
config06=Monitor configuration file did not contain the log file URI.
config07=Could not get log file location.
config08=Log file already exists.  Specified file location:
config09=Element is missing. Element name:
config10=Parameter value can't be negative. Element name:
config11=The log file location value cannot contain the pass separator character:

