GeNN  4.0.0
GPU enhanced Neuronal Networks (GeNN)
Logger.h
Go to the documentation of this file.
1 #pragma once
3 #include <plog/Util.h>
4 #include <vector>
5 
6 #ifndef PLOG_DEFAULT_INSTANCE
7 # define PLOG_DEFAULT_INSTANCE 0
8 #endif
9 
10 namespace plog
11 {
12  template<int instance>
13  class Logger : public util::Singleton<Logger<instance> >, public IAppender
14  {
15  public:
16  Logger(Severity maxSeverity = none) : m_maxSeverity(maxSeverity)
17  {
18  }
19 
21  {
22  assert(appender != this);
23  m_appenders.push_back(appender);
24  return *this;
25  }
26 
28  {
29  return m_maxSeverity;
30  }
31 
32  void setMaxSeverity(Severity severity)
33  {
34  m_maxSeverity = severity;
35  }
36 
37  bool checkSeverity(Severity severity) const
38  {
39  return severity <= m_maxSeverity;
40  }
41 
42  virtual void write(const Record& record)
43  {
44  if (checkSeverity(record.getSeverity()))
45  {
46  *this += record;
47  }
48  }
49 
50  void operator+=(const Record& record)
51  {
52  for (std::vector<IAppender*>::iterator it = m_appenders.begin(); it != m_appenders.end(); ++it)
53  {
54  (*it)->write(record);
55  }
56  }
57 
58  private:
59  Severity m_maxSeverity;
60  std::vector<IAppender*> m_appenders;
61  };
62 
63  template<int instance>
64  inline Logger<instance>* get()
65  {
67  }
68 
69  inline Logger<PLOG_DEFAULT_INSTANCE>* get()
70  {
72  }
73 }
Definition: AndroidAppender.h:5
Definition: Util.h:414
Definition: Logger.h:13
void setMaxSeverity(Severity severity)
Definition: Logger.h:32
Logger & addAppender(IAppender *appender)
Definition: Logger.h:20
void operator+=(const Record &record)
Definition: Logger.h:50
virtual Severity getSeverity() const
Definition: Record.h:185
Logger(Severity maxSeverity=none)
Definition: Logger.h:16
Definition: Record.h:102
Definition: Severity.h:7
Definition: IAppender.h:6
bool checkSeverity(Severity severity) const
Definition: Logger.h:37
virtual void write(const Record &record)
Definition: Logger.h:42
Severity getMaxSeverity() const
Definition: Logger.h:27
Severity
Definition: Severity.h:5
static Logger< instance > * getInstance()
Definition: Util.h:429