Lunchbox  1.11.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
}
 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

LUNCHBOX_API 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...
 
LUNCHBOX_API std::ostream & lunchbox::exdent (std::ostream &os)
 Decrease the indentation level of the Log stream. More...
 
LUNCHBOX_API std::ostream & lunchbox::disableFlush (std::ostream &os)
 Disable flushing of the Log stream. More...
 
LUNCHBOX_API std::ostream & lunchbox::enableFlush (std::ostream &os)
 Re-enable flushing of the Log stream. More...
 
LUNCHBOX_API std::ostream & lunchbox::forceFlush (std::ostream &os)
 Flush the Log stream regardless of the auto-flush state. More...
 
LUNCHBOX_API std::ostream & lunchbox::disableHeader (std::ostream &os)
 Disable printing of the Log header for subsequent lines. More...
 
LUNCHBOX_API 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__ )
Output debugging information.
Definition: log.h:48
static LUNCHBOX_API Log & instance()
The per-thread logger.
static LUNCHBOX_API int level
The current log level.
Definition: log.h:95

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

Version
1.0

Definition at line 195 of file log.h.

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

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

Version
1.0

Definition at line 187 of file log.h.

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

Output an informational message to the per-thread Log.

Version
1.0

Definition at line 192 of file log.h.

#define LBLOG (   topic)
Value:
(lunchbox::Log::topics & (topic)) && \
lunchbox::Log::instance( __FILE__, __LINE__ )
static LUNCHBOX_API Log & instance()
The per-thread logger.
static LUNCHBOX_API unsigned topics
The current log topics.
Definition: log.h:98

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

Version
1.0

Definition at line 211 of file log.h.

#define LBTHROW (   exc)
Value:
{ \
LBINFO << exc.what() << std::endl; \
throw exc; \
}
#define LBINFO
Output an informational message to the per-thread Log.
Definition: log.h:192

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

Version
1.7.1

Definition at line 218 of file log.h.

Referenced by lunchbox::PluginFactory< PluginT, InitDataT >::create().

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

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

Version
1.0

Definition at line 203 of file log.h.

#define LBWARN   LBERROR
Deprecated:

Definition at line 190 of file log.h.

Referenced by lunchbox::daemonize().