ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
log.hpp File Reference

A logging facility providing fine-grained control over logging in ViennaSHE. More...

#include <iosfwd>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include "viennashe/log/nullstream.hpp"

Go to the source code of this file.

Classes

class  viennashe::log::logger< enabled >
 The Main logger class. Assembles output lines and writes them to std::cout upon destruction. More...
 
class  viennashe::log::logger< false >
 Template specialization of the logger for the case enabled=false ... does nothing. Ensures that no runtime penalty is present if the logger is disabled via the template parameter. More...
 

Namespaces

namespace  viennashe
 The main ViennaSHE namespace. All functionality resides inside this namespace.
 
namespace  viennashe::log
 Namespace holding the logging facility.
 
namespace  viennashe::log::detail
 Namespace for implementation details within the viennashe::log namespace. Typically not of interest for the library user.
 

Enumerations

enum  viennashe::log::log_levels {
  viennashe::log::logERROR = 0 , viennashe::log::logWARNING , viennashe::log::logINFO , viennashe::log::logDEBUG ,
  viennashe::log::logNEVER
}
 Defines various log-levels. Note that log levels are inclusive, i.e. log levels with larger number include log levels with smaller number. More...
 

Functions

void viennashe::log::set_log_level (log_levels new_level)
 Sets the global log level. More...
 
log_levels viennashe::log::log_level ()
 Getter for the global log level. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::detail::vlogT ()
 
template<log_levels level, typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::detail::vlogTL ()
 
template<log_levels level>
logger< true > viennashe::log::detail::vlogL ()
 
logger< true > viennashe::log::error ()
 Used to log errors. The logging level is logERROR. More...
 
logger< true > viennashe::log::warn ()
 Used to log warnings. The logging level is logWARNING. More...
 
logger< true > viennashe::log::warning ()
 Used to log warnings. The logging level is logWARNING. More...
 
logger< true > viennashe::log::info ()
 Used to log infos. The logging level is logINFO. More...
 
logger< true > viennashe::log::debug ()
 Used to log debug output. The logging level is logDEBUG. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::error ()
 Used to log errors for a certain component. If KeyTypeT::enabled is false no output will be generated. The logging level is logERROR. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::warn ()
 Used to log warnings for a certain component. If KeyTypeT::enabled is false no output will be generated. The logging level is logWARNING. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::warning ()
 Used to log warnings for a certain component. If KeyTypeT::enabled is false no output will be generated. The logging level is logWARNING. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::info ()
 Used to log infos for a certain component. If KeyTypeT::enabled is false no output will be generated. The logging level is logINFO. More...
 
template<typename KeyTypeT >
logger< KeyTypeT::enabled > viennashe::log::debug ()
 Used to log debug output for a certain component. If KeyTypeT::enabled is false no output will be generated. The logging level is logDEBUG. More...
 

Detailed Description

A logging facility providing fine-grained control over logging in ViennaSHE.

Definition in file log.hpp.