- DEBUGGING
- Low priority - primarily used for findding problems or tracing execution.
- NORMAL
- Most messages users see should have this priority. Use for "interesting" informational messages from normally executing software.
- 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.
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.
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.
Create a completely filled out LogMessage.
Make this LogMessage a copy of other. Note that the time is also copied over.
Get the message text.
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.
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.
Set the source location - usually this will be called with the macro WHERE.
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.
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.
Turn this entire LogMessage into a String.
Map the given priority into a String - so, for example, it can be stored in a table.
Provide common implementation for copy constructor and assignment operator
Write a LogMessage as a string to an ostream. Merely calls LogMessage::toString()