casacore
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::LogMessage Class Reference

More...

#include <LogMessage.h>

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. More...
 
 LogMessage (const LogOrigin &sourceLocation, Priority priority=NORMAL)
 Create a message with the given location and priority, the current time and an empty message. More...
 
 LogMessage (const String &message, const LogOrigin &sourceLocation, Priority=NORMAL)
 Create a completely filled out LogMessage. More...
 
 LogMessage (const LogMessage &other)
 Make this LogMessage a copy of other. More...
 
LogMessageoperator= (const LogMessage &other)
 
 ~LogMessage ()
 
const Stringmessage () const
 Get the message text. More...
 
LogMessagemessage (const String &message, Bool keepLastTime=False)
 Set the message text. More...
 
uInt line () const
 Get and set the line number in the LogOrigin. More...
 
LogMessageline (uInt which)
 
LogMessagesourceLocation (const SourceLocation *where)
 Set the source location - usually this will be called with the macro WHERE. More...
 
const LogOriginorigin () const
 Get and set the origin of this LogMessage. More...
 
LogMessageorigin (const LogOrigin &origin)
 
Priority priority () const
 Get or change the priority of this LogMessage. More...
 
LogMessagepriority (Priority which)
 
const TimemessageTime () const
 Returns the time at which the message text was created. More...
 
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. More...
 
String toString () const
 Turn this entire LogMessage into a String. More...
 
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. More...
 

Private Member Functions

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

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__);
..\.
}
#define WHERE
Definition: LogOrigin.h:211
LogMessage(Priority priority=NORMAL)
Create a message with the given priority and the current time, and an empty origin and message.
LatticeExprNode arg(const LatticeExprNode &expr)
int Int
Definition: aipstype.h:50

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

◆ Priority

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

◆ LogMessage() [1/4]

casacore::LogMessage::LogMessage ( Priority  priority = NORMAL)

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

◆ LogMessage() [2/4]

casacore::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.

◆ LogMessage() [3/4]

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

Create a completely filled out LogMessage.

◆ LogMessage() [4/4]

casacore::LogMessage::LogMessage ( const LogMessage other)

Make this LogMessage a copy of other.

Note that the time is also copied over.

◆ ~LogMessage()

casacore::LogMessage::~LogMessage ( )

Member Function Documentation

◆ copy_other()

void casacore::LogMessage::copy_other ( const LogMessage other)
private

Provide common implementation for copy constructor and assignment operator.

◆ line() [1/2]

uInt casacore::LogMessage::line ( ) const

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.

◆ line() [2/2]

LogMessage& casacore::LogMessage::line ( uInt  which)

◆ message() [1/2]

const String& casacore::LogMessage::message ( ) const

Get the message text.

◆ message() [2/2]

LogMessage& casacore::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.

◆ messageTime() [1/2]

const Time& casacore::LogMessage::messageTime ( ) const

Returns the time at which the message text was created.

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

◆ messageTime() [2/2]

LogMessage& casacore::LogMessage::messageTime ( 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.

◆ operator=()

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

◆ origin() [1/2]

const LogOrigin& casacore::LogMessage::origin ( ) const

Get and set the origin of this LogMessage.

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

◆ origin() [2/2]

LogMessage& casacore::LogMessage::origin ( const LogOrigin origin)

◆ priority() [1/2]

Priority casacore::LogMessage::priority ( ) const

Get or change the priority of this LogMessage.

◆ priority() [2/2]

LogMessage& casacore::LogMessage::priority ( Priority  which)

◆ sourceLocation()

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

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

◆ toString() [1/2]

String casacore::LogMessage::toString ( ) const

Turn this entire LogMessage into a String.

◆ toString() [2/2]

static const String& casacore::LogMessage::toString ( Priority  which)
static

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

◆ toTermString()

String casacore::LogMessage::toTermString ( ) const

Member Data Documentation

◆ message_p

String casacore::LogMessage::message_p
private

Definition at line 208 of file LogMessage.h.

◆ origin_p

LogOrigin casacore::LogMessage::origin_p
private

Definition at line 209 of file LogMessage.h.

◆ priority_p

Priority casacore::LogMessage::priority_p
private

Definition at line 210 of file LogMessage.h.

◆ time_p

Time casacore::LogMessage::time_p
private

Definition at line 211 of file LogMessage.h.


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