Lunchbox  1.16.0
Multi-threaded C++ toolbox library for all application developers creating high-performance multi-threaded programs.
log.h File Reference

This file contains logging classes. More...

#include <lunchbox/api.h>
#include <lunchbox/compiler.h>
#include <lunchbox/types.h>
#include <assert.h>
#include <iomanip>
#include <iostream>
#include <sstream>
+ Include dependency graph for log.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  lunchbox::Log
 The logging class. More...
 

Namespaces

 lunchbox
 Abstraction layer and common utilities for multi-threaded programming.
 

Macros

#define LBERROR
 Output an error message to the per-thread Log stream. More...
 
#define LBWARN   LBERROR
 
#define LBINFO
 Output an informational message to the per-thread Log. More...
 
#define LBDEBUG
 Output a warning message to the per-thread Log stream. More...
 
#define LBVERB
 Output a verbatim message to the per-thread Log stream. More...
 
#define LBLOG(topic)
 Output a message pertaining to a topic to the per-thread Log stream. More...
 
#define LBTHROW(exc)
 Log a std::exception if topic LOG_EXCEPTION is set before throwing exception. More...
 

Enumerations

enum  lunchbox::LogLevel {
  lunchbox::LOG_ERROR = 1, lunchbox::LOG_WARN = LOG_ERROR, lunchbox::LOG_INFO, lunchbox::LOG_DEBUG,
  lunchbox::LOG_VERB, LOG_ALL = 6
}
 The logging levels. More...
 
enum  lunchbox::LogTopic { lunchbox::LOG_EXCEPTION = 0x01, lunchbox::LOG_BUG = 0x04, lunchbox::LOG_CUSTOM = 0x10, lunchbox::LOG_ANY = 0xffffu }
 The logging topics. More...
 

Functions

std::ostream & lunchbox::indent (std::ostream &os)
 Increases the indentation level of the Log stream, causing subsequent lines to be intended by four characters. More...
 
std::ostream & lunchbox::exdent (std::ostream &os)
 Decrease the indentation level of the Log stream. More...
 
std::ostream & lunchbox::disableFlush (std::ostream &os)
 Disable flushing of the Log stream. More...
 
std::ostream & lunchbox::enableFlush (std::ostream &os)
 Re-enable flushing of the Log stream. More...
 
std::ostream & lunchbox::forceFlush (std::ostream &os)
 Flush the Log stream regardless of the auto-flush state. More...
 
std::ostream & lunchbox::disableHeader (std::ostream &os)
 Disable printing of the Log header for subsequent lines. More...
 
std::ostream & lunchbox::enableHeader (std::ostream &os)
 Re-enable printing of the Log header. More...
 
std::ostream & lunchbox::startBlock (std::ostream &os)
 Indent, disable flush and header for block printing. More...
 
std::ostream & lunchbox::stopBlock (std::ostream &os)
 Exdent, denable flush and header to stop block print. More...
 

Detailed Description

This file contains logging classes.

The macros LBERROR, LBINFO, LBDEBUG and LBVERB output messages at their respective logging level, if the level is active. They use a per-thread lunchbox::Log instance, which is a std::ostream. LBVERB is always inactive in release builds.

Definition in file log.h.

Macro Definition Documentation

#define LBDEBUG
Value:
lunchbox::Log::instance(__FILE__, __LINE__)
static int level
The current log level.
Definition: log.h:97
Output debugging information.
Definition: log.h:47
static Log & instance()
The per-thread logger.

Output a warning message to the per-thread Log stream.

Version
1.0

Definition at line 203 of file log.h.

#define LBERROR
Value:
lunchbox::Log::instance(__FILE__, __LINE__)
static int level
The current log level.
Definition: log.h:97
Output critical errors and warnings.
Definition: log.h:44
static Log & instance()
The per-thread logger.

Output an error message to the per-thread Log stream.

Version
1.0

Definition at line 193 of file log.h.

Referenced by lunchbox::PluginFactory< T >::load().

#define LBINFO
Value:
lunchbox::Log::instance(__FILE__, __LINE__)
static int level
The current log level.
Definition: log.h:97
Output informational messages.
Definition: log.h:46
static Log & instance()
The per-thread logger.

Output an informational message to the per-thread Log.

Version
1.0

Definition at line 199 of file log.h.

Referenced by lunchbox::PluginFactory< T >::load().

#define LBLOG (   topic)
Value:
(lunchbox::Log::topics & (topic)) && \
lunchbox::Log::instance(__FILE__, __LINE__)
static unsigned topics
The current log topics.
Definition: log.h:100

Output a message pertaining to a topic to the per-thread Log stream.

Version
1.0

Definition at line 222 of file log.h.

#define LBTHROW (   exc)
Value:
{ \
LBDEBUG << exc.what() << std::endl; \
throw exc; \
}

Log a std::exception if topic LOG_EXCEPTION is set before throwing exception.

Version
1.7.1

Definition at line 230 of file log.h.

Referenced by lunchbox::PluginFactory< T >::create(), and lunchbox::LFVector< T, nSlots >::getWriteLock().

#define LBVERB
Value:
lunchbox::Log::instance(__FILE__, __LINE__)
Be noisy.
Definition: log.h:48
static int level
The current log level.
Definition: log.h:97
static Log & instance()
The per-thread logger.

Output a verbatim message to the per-thread Log stream.

Version
1.0

Definition at line 213 of file log.h.

#define LBWARN   LBERROR
Deprecated:

Definition at line 197 of file log.h.

Referenced by lunchbox::daemonize().