casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
casa::LogMessage Class Reference

Informational log messages with with time, priority, and origin. More...

#include <LogMessage.h>

Inheritance diagram for casa::LogMessage:
casa::PlotLogMessage casa::PlotLogLocate casa::PlotLogMeasurement casa::PlotLogMethod casa::PlotLogObject

List of all members.

Public Types

enum  Priority {
  DEBUGGING,
  DEBUG2,
  DEBUG1,
  NORMAL5,
  NORMAL4,
  NORMAL3,
  NORMAL2,
  NORMAL1,
  NORMAL,
  WARN,
  SEVERE
}
 An "importance" which is assigned to each LogMessage. More...

Public Member Functions

 LogMessage (Priority priority=NORMAL)
 Create a message with the given priority and the current time, and an empty origin and message.
 LogMessage (const LogOrigin &sourceLocation, Priority priority=NORMAL)
 Create a message with the given location and priority, the current time and an empty message.
 LogMessage (const String &message, const LogOrigin &sourceLocation, Priority=NORMAL)
 Create a completely filled out LogMessage.
 LogMessage (const LogMessage &other)
 Make this LogMessage a copy of other.
LogMessageoperator= (const LogMessage &other)
 ~LogMessage ()
 
     

const Stringmessage () const
 Get the message text.
LogMessagemessage (const String &message, Bool keepLastTime=False)
 Set the message text.
uInt line () const
 Get and set the line number in the LogOrigin .
LogMessageline (uInt which)
LogMessagesourceLocation (const SourceLocation *where)
 Set the source location - usually this will be called with the macro WHERE.
const LogOriginorigin () const
 Get and set the origin of this LogMessage.
LogMessageorigin (const LogOrigin &origin)
Priority priority () const
 Get or change the priority of this LogMessage.
LogMessagepriority (Priority which)
const TimemessageTime () const
 Returns the time at which the message text was created.
LogMessagemessageTime (const Time &theTime)
 Normally you should not manually set the time, however there may be rare circumstances where it is useful - for example if you have a single static message that you want to send out at various times.
String toString () const
 Turn this entire LogMessage into a String.
String toTermString () const

Static Public Member Functions

static const StringtoString (Priority which)
 Map the given priority into a String - so, for example, it can be stored in a table.

Private Member Functions

void copy_other (const LogMessage &other)
 Provide common implementation for copy constructor and assignment operator.

Private Attributes

String message_p
LogOrigin origin_p
Priority priority_p
Time time_p

Detailed Description

Informational log messages with with time, priority, and origin.

Intended use:

Public interface

Review Status

Reviewed By:
wbrouw
Date Reviewed:
1996/08/21
Test programs:
tLoging
Demo programs:
dLogging

Prerequisite

Synopsis

A LogMessage is the unit of information in the Logging system. A LogMessage consists of an informational text (String) message tagged with the following:

Example

    void globalFunction(Int arg)
    {
       LogMessage logMessage(LogOrigin("globalFunction(Int arg)", WHERE));
       ..\.
       logMessage.message("my message").line(__LINE__);
       ..\.
       logMessage.message("my second message").line(__LINE__);
       ..\.
    }
   
    void MyClass::member(Int arg)
    {
       LogMessage logMessage(LogOrigin("myClass", "member(Int arg)", WHERE));
       ..\.
       logMessage.message("my message").line(__LINE__);
       ..\.
    }

A more complete example is available in the module file Logging.h .

To Do

Definition at line 101 of file LogMessage.h.


Member Enumeration Documentation

An "importance" which is assigned to each LogMessage.

Enumerator:
DEBUGGING 

Low priority - primarily used for findding problems or tracing execution.

DEBUG2 
DEBUG1 
NORMAL5 

Most messages users see should have this priority.

Use for "interesting" informational messages from normally executing software.

NORMAL4 
NORMAL3 
NORMAL2 
NORMAL1 
NORMAL 
WARN 

Use messages of warning level to flag things that are unusual and might well be errors.

Normally the software should proceed anyway rather than throw an exception.

SEVERE 

Report on a problem detected by the software.

Messages logged at this priority will often be followed by a thrown exception.

Definition at line 105 of file LogMessage.h.


Constructor & Destructor Documentation

Create a message with the given priority and the current time, and an empty origin and message.

casa::LogMessage::LogMessage ( const LogOrigin sourceLocation,
Priority  priority = NORMAL 
)

Create a message with the given location and priority, the current time and an empty message.

This will likely be the most commonly used constructor when a given message is to be used several times in the same function.

casa::LogMessage::LogMessage ( const String message,
const LogOrigin sourceLocation,
Priority  = NORMAL 
)

Create a completely filled out LogMessage.

Make this LogMessage a copy of other.

Note that the time is also copied over.

     


Member Function Documentation

void casa::LogMessage::copy_other ( const LogMessage other) [private]

Provide common implementation for copy constructor and assignment operator.

Get and set the line number in the LogOrigin .

While in principle you can get and set this information through the origin() functions, in practice it is convenient to be able to directly get at the line number since it and the message text are usually the only things you change in a particular LogMessage object. Generally you will set the line number with the __LINE__ macro.

Get the message text.

LogMessage& casa::LogMessage::message ( const String message,
Bool  keepLastTime = False 
)

Set the message text.

If keepLastTime is True, the previous time will be used, otherwise the current time is used. This is intended for messages that come out at essentially identical times to aid in, e.g., Table selections.

Returns the time at which the message text was created.

This time is presently "computer operating system" precision time, not high-precision astronomical time.

Normally you should not manually set the time, however there may be rare circumstances where it is useful - for example if you have a single static message that you want to send out at various times.

LogMessage& casa::LogMessage::operator= ( const LogMessage other)

Get and set the origin of this LogMessage.

If you only need the line number, use the line() or sourceOrigin() functions instead.

Get or change the priority of this LogMessage.

LogMessage& casa::LogMessage::sourceLocation ( const SourceLocation *  where)

Set the source location - usually this will be called with the macro WHERE.

Turn this entire LogMessage into a String.

static const String& casa::LogMessage::toString ( Priority  which) [static]

Map the given priority into a String - so, for example, it can be stored in a table.


Member Data Documentation

Definition at line 208 of file LogMessage.h.

Definition at line 209 of file LogMessage.h.

Definition at line 210 of file LogMessage.h.

Definition at line 211 of file LogMessage.h.


The documentation for this class was generated from the following file: