Files
fail/core/util/Logger.hpp
hsc 1027b9faf2 Logger: fixed the case when the first << operand is a manipulator
log << std::dec << 123; failed before.  Simplified the whole Logger class,
removed add() functions nobody wants to use anyways.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1097 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-04-18 12:36:41 +00:00

56 lines
1.3 KiB
C++

#ifndef __LOGGER_HPP__
#define __LOGGER_HPP__
// Author: Adrian Böckenkamp
// Date: 21.11.2011
#include <iostream>
#include <sstream>
/**
* \class Logger
* Provides logging mechanisms.
*/
class Logger
{
private:
std::ostream* m_pDest;
std::string m_description;
bool m_showTime;
void timestamp();
public:
/**
* Constructor.
* @param description Description shown alongside each log entry in
* square brackets [ ]. Can be overridden in single add() calls.
* @param show_time Show a timestamp with each log entry.
* @param dest Stream to log into.
*/
Logger(const std::string& description = "Fail*", bool show_time = true,
std::ostream& dest = std::cout)
: m_pDest(&dest), m_description(description), m_showTime(show_time) { }
/**
* Change the default description which is shown alongside each log
* entry in square brackets [ ].
* @param descr The description text.
*/
void setDescription(const std::string& descr)
{
m_description = descr;
}
/**
* Add a new log entry. Returns a std::ostream reference to continue
* streaming a longer log entry.
* @param v data to log
*/
template<class T>
inline std::ostream& operator <<(const T& v)
{
timestamp();
return (*m_pDest) << v;
}
};
#endif /* __LOGGER_HPP__ */