#include <rlog/StdioNode.h>
Inheritance diagram for rlog::StdioNode:
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 &) | |
StdioNode & | operator= (const StdioNode &) |
Protected Attributes | |
bool | colorize |
bool | outputThreadId |
bool | outputContext |
bool | outputChannel |
int | fdOut |
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" )); }
RLOG_CHANNEL()
StdioNode::StdioNode | ( | int | _fdOut = 2 , |
|
int | flags = (int)DefaultOutput | |||
) |
_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)
|
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.