Lunchbox  1.13.0
Multi-threaded C++ toolbox library for all application developers creating high-performance multi-threaded programs.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules 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
 Output a warning message to the per-thread Log stream. More...
 
#define LBINFO
 Output an informational message to the per-thread Log. 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, lunchbox::LOG_INFO, lunchbox::LOG_VERB,
  LOG_ALL
}
 The logging levels. More...
 
enum  lunchbox::LogTopic { lunchbox::LOG_EXCEPTION = 0x01, lunchbox::LOG_PLUGIN = 0x02, 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, LBWARN, LBINFO 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 LBERROR
Value:
lunchbox::Log::instance( __FILE__, __LINE__ )
static int level
The current log level.
Definition: log.h:99
Output critical errors.
Definition: log.h:45
static Log & instance()
The per-thread logger.

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

Version
1.0

Definition at line 191 of file log.h.

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

Output an informational message to the per-thread Log.

Version
1.0

Definition at line 197 of file log.h.

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

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

Version
1.0

Definition at line 213 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:197

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

Version
1.7.1

Definition at line 220 of file log.h.

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

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

Version
1.0

Definition at line 205 of file log.h.

#define LBWARN
Value:
lunchbox::Log::instance( __FILE__, __LINE__ )
static int level
The current log level.
Definition: log.h:99
static Log & instance()
The per-thread logger.
Output potentially critical warnings.
Definition: log.h:46

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

Version
1.0

Definition at line 194 of file log.h.

Referenced by lunchbox::daemonize().