OpFlex Framework  1.7.0
opflex::logging::OFLogHandler Class Referenceabstract

Interface for a log message handler for the OpFlex framework. More...

#include <opflex/logging/OFLogHandler.h>

Inheritance diagram for opflex::logging::OFLogHandler:
opflex::logging::StdOutLogHandler

Public Types

enum  Level {
  TRACE, DEBUG7, DEBUG6, DEBUG5,
  DEBUG4, DEBUG3, DEBUG2, DEBUG1,
  DEBUG0, INFO, WARNING, ERROR,
  FATAL, NO_LOGGING
}
 Log levels for OpFlex framework logging.
 

Public Member Functions

 OFLogHandler (Level logLevel) __attribute__((no_instrument_function))
 Allocate a log handler that will log any messages with equal or greater severity than the specified log level. More...
 
virtual void handleMessage (const std::string &file, const int line, const std::string &function, const Level level, const std::string &message)=0
 Process a single log message. More...
 
virtual bool shouldEmit (const Level level) __attribute__((no_instrument_function))
 Check whether we should attempt to log at the given log level. More...
 

Static Public Member Functions

static void registerHandler (OFLogHandler &handler) __attribute__((no_instrument_function))
 Register a custom handler as the log handler. More...
 
static OFLogHandlergetHandler () __attribute__((no_instrument_function))
 Get the currently-active log handler. More...
 

Protected Attributes

Level logLevel_
 The log level for this logger.
 

Detailed Description

Interface for a log message handler for the OpFlex framework.

You will need to implement this interface and register your implementation if you want to log to your custom handler.

By default, the OpFlex Framework will simply log to standard out at INFO or above, but you can override this behavior by registering a customer log handler.

If you simply want to disable logging, the simplest way is as follows:

StdOutLogHandler disabledHandler(OFLogHandler::NO_LOGGING);

Constructor & Destructor Documentation

opflex::logging::OFLogHandler::OFLogHandler ( Level  logLevel)

Allocate a log handler that will log any messages with equal or greater severity than the specified log level.

Parameters
logLevelthe minimum log level

Member Function Documentation

static OFLogHandler* opflex::logging::OFLogHandler::getHandler ( )
static

Get the currently-active log handler.

Returns the default handler if there is no active custom handler.

Returns
the currently-active log handler
virtual void opflex::logging::OFLogHandler::handleMessage ( const std::string &  file,
const int  line,
const std::string &  function,
const Level  level,
const std::string &  message 
)
pure virtual

Process a single log message.

This file is called synchronously from the thread that is doing the logging and is unsynchronized.

Parameters
filethe file that performs the logging
linethe line number for the log message
functionthe name of the function that's performing the logging
levelthe log level of the log message
messagethe formatted message to log

Implemented in opflex::logging::StdOutLogHandler.

static void opflex::logging::OFLogHandler::registerHandler ( OFLogHandler handler)
static

Register a custom handler as the log handler.

You must ensure that the custom log handler is not deallocated before any framework components that might need to log to it.

Parameters
handlerthe customer handler to register
virtual bool opflex::logging::OFLogHandler::shouldEmit ( const Level  level)
virtual

Check whether we should attempt to log at the given log level.

Parameters
levelthe level of a message to log
Returns
true if the log level could be allowed

The documentation for this class was generated from the following file: