1 #ifndef __DIADES__UTILS__LOGGER__HH 2 #define __DIADES__UTILS__LOGGER__HH 16 #include <unordered_map> 18 #include <boost/date_time/posix_time/posix_time.hpp> 24 using std::unordered_map;
63 mutable vector< list< pair<ptime,string> > >
_logs;
78 _logs.clear(); _unsavedBegin.clear();
88 void trace(Level level, ptime time,
const string & msg);
99 void printLevel(Level level,ostream & os)
const;
153 Logger(
const string & name);
174 Logger(std::shared_ptr<LoggerData> data):_data(data){}
184 void trace(Level level, ptime time,
const string & msg)
const 186 _data->trace(level,time,msg);
200 _data->printLevel(level,os);
213 return os << *(logger.
_data);
234 unordered_map<string, std::shared_ptr<LoggerData>>
_loggers;
253 static void destroy();
267 return _levelLabels[level];
293 unordered_map<string, std::shared_ptr<LoggerData> >::const_iterator it = _loggers.find(name);
294 if(it==_loggers.end())
296 std::shared_ptr<LoggerData> newOne(
new LoggerData());
297 _loggers[name]=newOne;
300 return Logger(it->second);
311 return Logger(_defaultLogger);
const string & getLabel(LogLevel level) const
vector< string > _levelLabels
Logger(const Logger &logger)
Logger getLogger(const string &name)
vector< list< pair< ptime, string > > > _logs
unordered_map< string, std::shared_ptr< LoggerData > > _loggers
void trace(Level level, ptime time, const string &msg) const
std::shared_ptr< LoggerData > _defaultLogger
Logger(std::shared_ptr< LoggerData > data)
Namespace of the Diades project.
vector< list< pair< ptime, string > >::iterator > _unsavedBegin
std::ostream & operator<<(std::ostream &os, const Identifier &identifier)
static LoggerFactory * _instance
std::shared_ptr< LoggerData > _data
void printLevel(Level level, ostream &os)