jcmdline
Class LoggerCmdLineHandler

java.lang.Object
  extended by jcmdline.AbstractHandlerDecorator
      extended by jcmdline.LoggerCmdLineHandler
All Implemented Interfaces:
CmdLineHandler

public class LoggerCmdLineHandler
extends AbstractHandlerDecorator

A CmdLineHandler Decorator class that implements a logging option that implements rudimentary support for the java.util.logging package.

The implemented option is a StringParam whose tag is defined by "LoggerCmdLineHandler.logOpt.tag" in the strings.properties file (set to "log", in English). The acceptable values for the parameter are set to the localized strings that are valid logging levels as defined by the java.util.logging.Level class.

Should the user set this option a StreamHandler is added to the root logger and the logging level of the root logger and the StreamHandler are set to that specified on the command line. It is possible to set a Formatter for the log messages (the default is java.util.logging.SimpleFormatter) with the setLogFormatter() method. This method, if used, must be called prior to any calls to parse().

Information on using CmdLineHandlers can be found in the jcmdline User Guide.

Version:
jcmdline Rel. 2.0.0 $Id: LoggerCmdLineHandler.java,v 1.2 2002/12/07 14:22:06 lglawrence Exp $
Author:
Lynne Lawrence
See Also:
CmdLineHandler, AbstractHandlerDecorator, Logger

Constructor Summary
LoggerCmdLineHandler(java.io.OutputStream stream, CmdLineHandler handler)
          constructor
LoggerCmdLineHandler(java.io.OutputStream stream, java.lang.String cmdName, java.lang.String cmdDesc, java.util.Collection<Parameter<?>> options, java.util.Collection<Parameter<?>> args)
          constructor - uses the PosixCmdLineParser to parse the command line
LoggerCmdLineHandler(java.io.OutputStream stream, java.lang.String cmdName, java.lang.String cmdDesc, Parameter<?>[] options, Parameter<?>[] args)
          constructor - creates a new DefaultCmdLineHandler as its delegate
LoggerCmdLineHandler(java.io.OutputStream stream, java.lang.String cmdName, java.lang.String cmdDesc, Parameter<?>[] options, Parameter<?>[] args, CmdLineParser parser)
          constructor - creates a new DefaultCmdLineHandler as its delegate
 
Method Summary
 java.util.logging.Formatter getLogFormatter()
          Gets the formatter for log messages, defaults to java.util.logging.SimpleFormatter .
protected  boolean processParsedOptions(boolean parseOk)
          Called following the call to parse() of this class's contained CmdLineHandler.
 void setLogFormatter(java.util.logging.Formatter logFormatter)
          Sets the formatter for log messages, defaults to java.util.logging.SimpleFormatter .
 
Methods inherited from class jcmdline.AbstractHandlerDecorator
addArg, addOption, exitUsageError, getArg, getArgs, getCmdDesc, getCmdName, getCustomOptions, getDieOnParseError, getOption, getOptions, getParseError, getParser, getUsage, parse, setArgs, setCmdDesc, setCmdName, setCustomOptions, setDieOnParseError, setOptions, setParseError, setParser
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LoggerCmdLineHandler

public LoggerCmdLineHandler(java.io.OutputStream stream,
                            CmdLineHandler handler)
constructor

Parameters:
stream - the OutputStream to which to write log messages
handler - the CmdLineHandler to which most functionality will be delegated
Throws:
java.lang.IllegalArgumentException - if stream is null

LoggerCmdLineHandler

public LoggerCmdLineHandler(java.io.OutputStream stream,
                            java.lang.String cmdName,
                            java.lang.String cmdDesc,
                            java.util.Collection<Parameter<?>> options,
                            java.util.Collection<Parameter<?>> args)
constructor - uses the PosixCmdLineParser to parse the command line

Parameters:
stream - the OutputStream to which to write log messages
cmdName - the name of the command creating this DefaultCmdLineHandler
cmdDesc - a short description of the command's purpose
options - a collection of Parameter objects, describing the command's command-line options
args - a collection of Parameter objects, describing the command's command-line arguments (what is left on the command line after all options and their parameters have been processed)
Throws:
java.lang.IllegalArgumentException - if any of the parameters are not correctly specified.
See Also:
setCmdName(), setCmdDesc(), setOptions(), PosixCmdLineParser

LoggerCmdLineHandler

public LoggerCmdLineHandler(java.io.OutputStream stream,
                            java.lang.String cmdName,
                            java.lang.String cmdDesc,
                            Parameter<?>[] options,
                            Parameter<?>[] args)
constructor - creates a new DefaultCmdLineHandler as its delegate

Parameters:
stream - the OutputStream to which to write log messages
cmdName - the name of the command
cmdDesc - a short description of the command
options - a collection of Parameter objects, describing the command's command-line options
args - a collection of Parameter objects, describing the command's command-line arguments (what is left on the command line after all options and their parameters have been processed)
Throws:
java.lang.IllegalArgumentException - if any of the parameters are not correctly specified.
See Also:
DefaultCmdLineHandler

LoggerCmdLineHandler

public LoggerCmdLineHandler(java.io.OutputStream stream,
                            java.lang.String cmdName,
                            java.lang.String cmdDesc,
                            Parameter<?>[] options,
                            Parameter<?>[] args,
                            CmdLineParser parser)
constructor - creates a new DefaultCmdLineHandler as its delegate

Parameters:
stream - the OutputStream to which to write log messages
cmdName - the name of the command
cmdDesc - a short description of the command
options - a collection of Parameter objects, describing the command's command-line options
args - a collection of Parameter objects, describing the command's command-line arguments (what is left on the command line after all options and their parameters have been processed)
parser - a CmdLineParser to be used to parse the command line
Throws:
java.lang.IllegalArgumentException - if any of the parameters are not correctly specified.
See Also:
DefaultCmdLineHandler
Method Detail

getLogFormatter

public java.util.logging.Formatter getLogFormatter()
Gets the formatter for log messages, defaults to java.util.logging.SimpleFormatter .

Returns:
the formatter for log messages
See Also:
setLogFormatter()

setLogFormatter

public void setLogFormatter(java.util.logging.Formatter logFormatter)
Sets the formatter for log messages, defaults to java.util.logging.SimpleFormatter . This method must be called prior to calling parse() - calling this method after the command line has been parsed will have no effect.

Parameters:
logFormatter - the formatter for log messages
Throws:
java.lang.IllegalArgumentException - if logFormatter is null
See Also:
getLogFormatter()

processParsedOptions

protected boolean processParsedOptions(boolean parseOk)
Called following the call to parse() of this class's contained CmdLineHandler. This method only checks for its option if parseStatus is true.

This method adds a ConsoleHandler to the root logger and sets the logging level of the root logger to that specified on the command line.

Specified by:
processParsedOptions in class AbstractHandlerDecorator
Parameters:
parseOk - The result of the parse() call to this class's contained CmdLineHandler.
Returns:
This method will call System.exit(0), rather than returning, if its option is set. Otherwise, parseStatus is returned.