class PTrace

Class to encapsulate tracing functions.

Public Methods

[more]static void Initialise ( unsigned level, const char* filename = NULL, unsigned options = Timestamp | Thread | Blocks )
Set the most common trace options.
[more]static void SetOptions (unsigned options )
Set the trace options.
[more]static void ClearOptions (unsigned options )
Clear the trace options.
[more]static unsigned GetOptions ()
Get the current trace options.
[more]static void SetLevel (unsigned level )
Set the trace level.
[more]static unsigned GetLevel ()
Get the trace level.
[more]static BOOL CanTrace (unsigned level)
Determine if the level may cause trace output.
[more]static void SetStream (ostream* out )
Set the stream to be used for trace output.
[more]static ostream& Begin ( unsigned level, const char* fileName, int lineNum )
Begin a trace output.
[more]static ostream& End (ostream & strm)
End a trace output.

Public Members

[more]enum Options
Options for trace output
class Block
Class to trace Execution blocks.


Documentation

Class to encapsulate tracing functions. This class does not require any instances and is only being used as a method of grouping functions together in a name space.
oenum Options
Options for trace output

o Blocks
Include PTrace::Block constructs in output If this is bit is clear, all PTrace::Block output is inhibited regardless of the trace level. If set, the PTrace::Block may occur provided the trace level is greater than zero.

o DateAndTime
Include date and time in all output

o Timestamp
Include (millisecond) timestamp in all output

o Thread
Include identifier for thread trace is made from in all output

o TraceLevel
Include trace level in all output

o FileAndLine
Include the file and line for the trace call in all output

o ThreadAddress
Include thread object pointer address in all trace output

o AppendToFile
Append to log file rather than resetting every time

o GMTTime
SystemLog flag for tracing within a PServiceProcess application. Must be set in conjection with SetStream(new PSystemLog).

o SystemLogStream
Output timestamps in GMT time rather than local time

ostatic void Initialise( unsigned level, const char* filename = NULL, unsigned options = Timestamp | Thread | Blocks )
Set the most common trace options. If filename is not NULL then a PTextFile is created and attached the trace output stream. This object is never closed or deleted until the termination of the program.

A trace output of the program name version and OS is written as well.

ostatic void SetOptions(unsigned options )
Set the trace options. The PTRACE(), PTRACE_BLOCK() and PTRACE_LINE() macros output trace text that may contain assorted values. These are defined by the Options enum.

Note this function OR's the bits included in the options parameter.

Parameters:
options - New level for trace

ostatic void ClearOptions(unsigned options )
Clear the trace options. The PTRACE(), PTRACE_BLOCK() and PTRACE_LINE() macros output trace text that may contain assorted values. These are defined by the Options enum.

Note this function AND's the complement of the bits included in the options parameter.

Parameters:
options - New level for trace

ostatic unsigned GetOptions()
Get the current trace options. The PTRACE(), PTRACE_BLOCK() and PTRACE_LINE() macros output trace text that may contain assorted values. These are defined by the Options enum.

ostatic void SetLevel(unsigned level )
Set the trace level. The PTRACE() macro checks to see if its level is equal to or lower then the level set by this function. If so then the trace text is output to the trace stream.
Parameters:
level - New level for trace

ostatic unsigned GetLevel()
Get the trace level. The PTRACE() macro checks to see if its level is equal to or lower then the level set by this function. If so then the trace text is output to the trace stream.

ostatic BOOL CanTrace(unsigned level)
Determine if the level may cause trace output. This checks against the current global trace level set by PSetTraceLevel for if the trace output may be emitted. This is used by the PTRACE macro.
Parameters:
level - Trace level to check

ostatic void SetStream(ostream* out )
Set the stream to be used for trace output. This stream is used for all trace output using the various trace functions and macros.
Parameters:
out - New output stream from trace.

ostatic ostream& Begin( unsigned level, const char* fileName, int lineNum )
Begin a trace output. If the trace stream output is used outside of the provided macros, it should be noted that a mutex is obtained on the call to PBeginTrace which will prevent any other threads from using the trace stream until the PEndTrace function is called.

So a typical usage would be:

    ostream & s = PTrace::Begin(3, __FILE__, __LINE__);
    s << "hello";
    if (want_there)
      s << " there";
    s << '!' << PTrace::End();
  
Parameters:
level - Log level for output
fileName - Filename of source file being traced
lineNum - Line number of source file being traced.

ostatic ostream& End(ostream & strm)
End a trace output. If the trace stream output is used outside of the provided macros, the PEndTrace function must be used at the end of the section of trace output. A mutex is obtained on the call to PBeginTrace which will prevent any other threads from using the trace stream until the PEndTrace. The PEndTrace is used in a similar manner to ::endl or ::flush.

So a typical usage would be:

    ostream & s = PTrace::Begin();
    s << "hello";
    if (want_there)
      s << " there";
    s << '!' << PTrace::End();
  
Parameters:
- strm Trace output stream being completed


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.