Tomographer  v1.0a
Tomographer C++ Framework Documentation
Tomographer::Logger Namespace Reference

Tomographer's Logging Framework More...

Classes

class  BufferLogger
 Log messages into an internal memory buffer. More...
 
struct  DefaultLoggerTraits
 Default traits for Logger implementations. More...
 
class  FileLogger
 Simple logger class which logs everything into a given FILE pointer. More...
 
class  LocalLogger
 Local logger: avoid having to repeat origin at each emitted message. More...
 
struct  LocalLoggerOriginSpec
 Tool to specify arguments to LocalLogger. More...
 
class  LoggerBase
 Base logger class. More...
 
struct  LoggerTraits
 Traits template struct to be specialized for specific Logger implementations. More...
 
struct  LoggerTraits< BufferLogger >
 Specialized Traits for BufferLogger – see LoggerTraits<LoggerType> More...
 
struct  LoggerTraits< FileLogger >
 Specialized Traits for FileLogger – see LoggerTraits<LoggerType> More...
 
struct  LoggerTraits< LocalLogger< BaseLoggerType_ > >
 Specialized Traits for LocalLogger. See LoggerTraits<BaseLoggerType_> More...
 
struct  LoggerTraits< MinimumSeverityLogger< BaseLogger, Level > >
 Specialized Traits for MinimumSeverityLogger<BaseLogger,Level> – see LoggerTraits<BaseLogger> More...
 
struct  LoggerTraits< MultiProc::OMP::ThreadSanitizerLogger< BaseLogger > >
 Specialized Traits for Tomographer::MultiProc::OMP::ThreadSanitizerLogger<typename BaseLogger> – see Tomographer::Logger::LoggerTraits<typename LoggerType> More...
 
struct  LoggerTraits< OriginFilteredLogger< BaseLogger > >
 Specialized Logger Traits for OriginFilteredLogger – see LoggerTraits<LoggerType>. More...
 
struct  LoggerTraits< VacuumLogger >
 Specialied Traits for VacuumLogger. See LoggerTraits<BaseLogger>. More...
 
class  LogLevel
 Object which stores a log level and can initialize from a string. More...
 
class  MinimumSeverityLogger
 Logger which statically discards any messages less important than a fixed severity. More...
 
class  OriginFilteredLogger
 A logger which filters entries according to where they originated from. More...
 
struct  static_is_at_least_of_severity
 Helper for statically determining if Level is at least as severe as BaseLevel. More...
 
class  VacuumLogger
 Logger that discards all messages. More...
 

Enumerations

enum  LogLevelCode
 Possible logging levels. More...
 

Functions

std::istreamoperator>> (std::istream &str, LogLevel &l)
 C++ input stream operator for LogLevel.
 
std::ostreamoperator<< (std::ostream &str, const LogLevel &l)
 C++ output stream operator for LogLevel.
 
bool is_at_least_of_severity (int level, int baselevel)
 Helper to compare severity levels. More...
 

Detailed Description

Tomographer's Logging Framework

Enumeration Type Documentation

Possible logging levels.

Don't trust the numeric values here, they may change at any time. Just the order is important.

Enumerator
ERROR 

Error logging level.

A log message with this level signifies that a critical error has occurred which prevents further processing. The program should terminate.

WARNING 

Warning logging level.

A log message with this level signifies a warning for the user. The computation may continue, but most likely the user made provided erroneous input, or there are features which will not be available.

INFO 

Information logging level.

Log messages with the INFO level are general messages which inform the user about the global steps being taken. They may indicate, for example, what will be computed.

DEBUG 

Debug logging level.

More verbose information, meant to debug either the input data or the Tomographer program itself. These messages should make it easier to locate a specific error, and generally give a more specific idea of what the program does.

The DEBUG level is meant to still be readable on a terminal output, even with multiple threads. Don't generate too many messages with this level. Use the LONGDEBUG level to generate as many messages as you want.

LONGDEBUG 

Long Debug logging level.

This level is meant to signify very specific messages, such as individual iterations. The log produced with this level may be very long an no longer readable on a terminal.

Use this level for messages that are generated very often.

HIGHEST_SEVERITY_LEVEL 

Highest severity possible.

Don't use as a level. Use, rather, as value e.g. for LoggerTraits<LoggerType>::StaticMinimumSeverityLevel.

LOWEST_SEVERITY_LEVEL 

Lowest severity possible.

Don't use as a level. Use, rather, as value e.g. for LoggerTraits<LoggerType>::StaticMinimumSeverityLevel.

Definition at line 77 of file loggers.h.

Function Documentation

bool Tomographer::Logger::is_at_least_of_severity ( int  level,
int  baselevel 
)
inline

Helper to compare severity levels.

Returns true if the given level is at least as severe (equal severity or higher severity) as baselevel (for example, if level == Logger::ERROR and baselevel == Logger::INFO).

Just to make sure we don't confuse the numerical ordering of the levels, we should always use this helper function to see whether a level is at least of a given severity.

Definition at line 246 of file loggers.h.