rlog::StdioNode Class Reference

Logs subscribed messages to a file descriptor. More...

#include <rlog/StdioNode.h>

Inheritance diagram for rlog::StdioNode:

rlog::RLogNode List of all members.

Public Types

enum  StdioFlags {
  DefaultOutput = 0, OutputColor = 1, OutputThreadId = 2, OutputContext = 4,
  OutputChannel = 8
}

Public Member Functions

 StdioNode (int fdOut=2, int flags=(int) DefaultOutput)
 StdioNode (int fdOut, bool colorize_if_tty)
void subscribeTo (RLogNode *node)

Protected Member Functions

virtual void publish (const RLogData &data)
 Publish data.
 StdioNode (const StdioNode &)
StdioNodeoperator= (const StdioNode &)

Protected Attributes

bool colorize
bool outputThreadId
bool outputContext
bool outputChannel
int fdOut

Detailed Description

Logs subscribed messages to a file descriptor.

This displays all subscribed messages to a file descriptor. If the output is a terminal, then the messages are colorized (yellow for warnings, red for errors).

For example, to log to stderr:

  int main(int argc, char **argv)
  {
      // tell RLog the program name..
      RLog_Init( argv[0] );

      // log to standard error
      StdioNode stdlog( STDERR_FILENO );

      // show all warning and error messages, no matter what component they
      // come from.
      stdlog.subscribeTo( GetGlobalChannel( "warning" ));
      stdlog.subscribeTo( GetGlobalChannel( "error" ));
  }

See also:
RLogChannel

RLOG_CHANNEL()

Author:
Valient Gough


Constructor & Destructor Documentation

StdioNode::StdioNode ( int  _fdOut = 2,
int  flags = (int)DefaultOutput 
)

Parameters:
_fdOut File descriptor to send output
flags bitmask of the following options:
      OutputChannel - Includes the channel name in the output. e.g. [debug]
      OutputContext - Includes the filename and line number in the output. e.g. OpsecAgent.cpp:209
      OutputColor   - Output to a TTY is colored based on log level (not supported by Win32 console)
      OutputThreadId - Includes the thread id in the output e.g. [tid:37333936] (Not supported on Win32)


Member Function Documentation

void StdioNode::subscribeTo ( RLogNode node  ) 

Subscribe to log messages.

Example:

   StdioNode log( STDERR_FILENO );
   // subscribe to error and warning messages
   log.subscribeTo( GetGlobalChannel("error" ));
   log.subscribeTo( RLOG_CHANNEL("warning" ));

void StdioNode::publish ( const RLogData data  )  [protected, virtual]

Publish data.

This iterates over the list of subscribers which have stated interest and sends them the data.

Reimplemented from rlog::RLogNode.


The documentation for this class was generated from the following files:
Generated on Mon Nov 20 22:57:46 2006 for rlog by  doxygen 1.5.0