#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.
1.5.0