Open Lighting Architecture  0.10.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Files | Namespaces | Classes | Macros | Enumerations | Enumerator | Functions
Logging

Detailed Description

The OLA logging system.

Example
\#include <ola/Logging.h>
// Call this once
OLA_FATAL << "Null pointer!";
OLA_WARN << "Could not connect to server: " << ip_address;
OLA_INFO << "Reading configs from " << config_dir;
OLA_DEBUG << "Counter was " << counter;
Collaboration diagram for Logging:

Files

file  Logging.cpp
 
file  Logging.h
 Header file for OLA Logging.
 

Namespaces

 ola
 The namespace containing all OLA symbols.
 

Classes

class  ola::LogDestination
 The base class for log destinations. More...
 
class  ola::StdErrorLogDestination
 A LogDestination that writes to stderr. More...
 
class  ola::SyslogDestination
 An abstract base of LogDestination that writes to syslog. More...
 
class  ola::UnixSyslogDestination
 A SyslogDestination that writes to Unix syslog. More...
 

Macros

#define OLA_LOG(level)
 
#define OLA_FATAL   OLA_LOG(ola::OLA_LOG_FATAL)
 
#define OLA_WARN   OLA_LOG(ola::OLA_LOG_WARN)
 
#define OLA_INFO   OLA_LOG(ola::OLA_LOG_INFO)
 
#define OLA_DEBUG   OLA_LOG(ola::OLA_LOG_DEBUG)
 

Enumerations

enum  ola::log_level {
  ola::OLA_LOG_NONE, ola::OLA_LOG_FATAL, ola::OLA_LOG_WARN, ola::OLA_LOG_INFO,
  ola::OLA_LOG_DEBUG, OLA_LOG_MAX
}
 The OLA log levels. This controls the verbosity of logging. Each level also includes those below it. More...
 
enum  ola::log_output { ola::OLA_LOG_STDERR, ola::OLA_LOG_SYSLOG, OLA_LOG_NULL }
 The destination to write log messages to. More...
 

Functions

void ola::SetLogLevel (log_level level)
 Set the logging level. More...
 
void ola::IncrementLogLevel ()
 Increment the log level by one. The log level wraps to OLA_LOG_NONE.
 
bool ola::InitLoggingFromFlags ()
 Initialize the OLA logging system from flags. More...
 
bool ola::InitLogging (log_level level, log_output output)
 Initialize the OLA logging system. More...
 
void ola::InitLogging (log_level level, LogDestination *destination)
 Initialize the OLA logging system using the specified LogDestination. More...
 
virtual ola::LogDestination::~LogDestination ()
 Destructor.
 
virtual void ola::LogDestination::Write (log_level level, const std::string &log_line)=0
 An abstract function for writing to your log destination. More...
 
void ola::StdErrorLogDestination::Write (log_level level, const std::string &log_line)
 Writes a messages out to stderr.
 
virtual ola::SyslogDestination::~SyslogDestination ()
 Destructor.
 
virtual bool ola::SyslogDestination::Init ()=0
 Initialize the SyslogDestination.
 
virtual void ola::SyslogDestination::Write (log_level level, const std::string &log_line)=0
 Write a line to the system logger. More...
 
bool ola::UnixSyslogDestination::Init ()
 Initialize the UnixSyslogDestination.
 
void ola::UnixSyslogDestination::Write (log_level level, const std::string &log_line)
 Write a line to syslog.
 
log_level ola::LogLevel ()
 Fetch the current level of logging. More...
 

Macro Definition Documentation

#define OLA_DEBUG   OLA_LOG(ola::OLA_LOG_DEBUG)

Provide a stream to log a debug message.

1 OLA_DEBUG << "Counter was " << counter;
#define OLA_FATAL   OLA_LOG(ola::OLA_LOG_FATAL)

Provide a stream to log a fatal message. e.g.

1 OLA_FATAL << "Null pointer!";
#define OLA_INFO   OLA_LOG(ola::OLA_LOG_INFO)

Provide a stream to log an infomational message.

1 OLA_INFO << "Reading configs from " << config_dir;
#define OLA_LOG (   level)
Value:
(level <= ola::LogLevel()) && \
ola::LogLine(__FILE__, __LINE__, level).stream()
log_level LogLevel()
Fetch the current level of logging.
Definition: Logging.h:247

Provide a stream interface to log a message at the specified log level. Rather than calling this directly use one of the OLA_FATAL, OLA_WARN, OLA_INFO or OLA_DEBUG macros.

Parameters
levelthe log_level to log at.
#define OLA_WARN   OLA_LOG(ola::OLA_LOG_WARN)

Provide a stream to log a warning message.

1 OLA_WARN << "Could not connect to server: " << ip_address;

Enumeration Type Documentation

The OLA log levels. This controls the verbosity of logging. Each level also includes those below it.

Enumerator
OLA_LOG_NONE 

No messages are logged.

OLA_LOG_FATAL 

Fatal messages are logged.

OLA_LOG_WARN 

Warnings messages are logged.

OLA_LOG_INFO 

Informational messages are logged.

OLA_LOG_DEBUG 

Debug messages are logged.

The destination to write log messages to.

Enumerator
OLA_LOG_STDERR 

Log to stderr.

OLA_LOG_SYSLOG 

Log to syslog.

Function Documentation

bool ola::InitLogging ( log_level  level,
log_output  output 
)

Initialize the OLA logging system.

Parameters
levelthe level to log at
outputthe destination for the logs
Returns
true if logging was initialized sucessfully, false otherwise.
void ola::InitLogging ( log_level  level,
LogDestination *  destination 
)

Initialize the OLA logging system using the specified LogDestination.

Parameters
levelthe level to log at
destinationthe LogDestination to use.
bool ola::InitLoggingFromFlags ( )

Initialize the OLA logging system from flags.

Precondition
ParseFlags() must have been called before calling this.
Returns
true if logging was initialized sucessfully, false otherwise.
log_level ola::LogLevel ( )
inline

Fetch the current level of logging.

Returns
the current log_level.
void ola::SetLogLevel ( log_level  level)

Set the logging level.

Parameters
levelthe new log_level to use.
virtual void ola::LogDestination::Write ( log_level  level,
const std::string &  log_line 
)
pure virtual

An abstract function for writing to your log destination.

Note
You must over load this if you want to create a new log destination

Implemented in ola::UnixSyslogDestination, ola::SyslogDestination, and ola::StdErrorLogDestination.

virtual void ola::SyslogDestination::Write ( log_level  level,
const std::string &  log_line 
)
pure virtual

Write a line to the system logger.

Note
This is syslog on *nix or the event log on windows.

Implements ola::LogDestination.

Implemented in ola::UnixSyslogDestination.