Severity Level:
	
All messages that are at or ABOVE the Severity Level setting will be displayed.

Severity Levels:

OBJECT_DUMP	= 0;
DUMP		= 0;
VERBOSE		= 1;
INFO		= 2;
WARN		= 3;
WARNING		= 3;
ERROR		= 4;
CRITICAL	= 5;
CRIT		= 5;
ASSERT		= 6;
DISABLED        = 1000;
The strings will work -- as will integers.  The bigger the number, the fewer the messages and the scarier the message.
Just to make life a little easier --  the following are accepted as well:

ALL NOISY EVERYTHING ON MONDO YES TRUE DUMP  MAX   ===> these all are equivalent to 0
NO OFF FALSE QUIET MIN ---> these all disable it

As a last resort -- you can just use the first character of the different official strings:

D, V, I, W, E, C, A --> D == DUMP, not DISABLED

Any number greater than 6 disables.

---------------------------------------------------------------------------

Reporter is a logging tool.  Programmers put in interesting String messages and tell Reporter to display them.  All messages have a severity level.  
By setting a "display severity level" in global settings -- you can filter out all messages with lower severity.

E.g. if you set the level to DUMP -- you will get enormous amounts of debugging information.  Including object dumps (that's where you display the values of every variable in an object).  

Reporter is a simple Swing text window.  Reporter's window will only appear when a message of the required severity level is triggered.

For everyday use -- I recommend setting it to "ERROR".  Then you'll see everything that the programmers have defined to be errors.
  
Reporter output can be quite helpful to QA because *every* message displays the class name, the method name, the java filename and the line number.

***************  Programmer Instructions *********

SeverityLevel:

1. In code:
    Reporter.setSeverityLevel(Reporter.ASSERT);
    Reporter.setSeverityLevel(2);
    Reporter.setSeverityLevel("DumP");
    Reporter.setSeverityLevel("off");
    //etc., etc.

2. Env variables --this is dependent on the version of Reporter.  For Forte -- it first checks the global options settings for "ForteReporterDebugLevel" then it checks for 
the System (i.e. JVM) Properties, in order, 
ForteReporterDebugLevel, ReporterDebugLevel, ReporterSeverityLevel, ReporterLevel, Reporter

i.e. if you run a java program from the commandline -- you can do this:

java -DReporter=verbose someClass

----------------------------------------------------------------------------------------------------------------------

Here's the simplest way to use it...

//////////////////////////////////

import .......util.diagnostics.Reporter;

void someMethod(int thisMustNotBeZero, int thisMustBeZero, String betterBeAGoodString)
{
    Reporter.assert(thisMustNotBeZero);
    Reporter.assert(thisMustBeZero == 0, "Hey -- it wasn't zero!!");
    Reporter.assert(betterBeAGoodString);


    try
    {
        Report.assert(something, "something is rotten in Denmark!!");  // something could be a double, int, String, boolean or Object
    }
    catch(Assertion.Failure e)
    { 
        throw somethingElse(e);
    }

    Reporter.verbose("blah = " + blah);
    Reporter.info("");      // this will print a line with the class name, methodname, filename and linenumber.  Actually pretty useful!
    Reporter.crit("You really screwed up!!");
    

    if(Reporter.getSeverityLevel() <= Reporter.DUMP)
    {
        // time-consuming debugging info generation here...
        Reporter.verbose(s);
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Oh, you want more filtering and more complexity?  OK -- Reporter is really a class with all static methods -- info(), verbose(), etc. that
    // call the default ReporterImpl object's info(), verbose() etc. methods.  Why did I do this?  SO YOU DON'T HAVE TO HASSLE WITH CREATING AN OBJECT
    // ALL THE TIME TO LOG MESSAGES!  
    // But if you are inundated with other messages -- or you are working on a new area, say, and you want your own easy to read window that will display
    // just your "private" messages -- then you can try these:

    // creates a "Reporter" window with the severityLevel set to VERBOSE
    ReporterImpl specialReporter1 = new ReporterImpl(Reporter.VERBOSE); 
 
    // creates a "Reporter" window with the severityLevel set to VERBOSE and the title on the window to "My New Code"
    ReporterImpl specialReporte2 = new ReporterImpl("My New Code", Reporter.VERBOSE);  

    // creates a "Reporter" window with the severityLevel set to the "global" severitylevel and the title on the window to "My New Code"
    ReporterImpl specialReporter3 = new ReporterImpl("My New Code");  // creates a "Reporter" window with the severityLevel set to VERBOSE

    // creates a "Reporter" window with the severityLevel set to the "global" severitylevel and the title on the window is the global one...
    ReporterImpl specialReporter4 = new ReporterImpl();  // creates a "Reporter" window with the severityLevel set to VERBOSE

    then just use the Reporter methods like this:

    specialReporter3.info("Hello there, carbon-based life form!");

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    



        
    


