Changeset 378 for cpp/frams/loggers/loggers.h
- Timestamp:
- 04/27/15 04:44:23 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/loggers/loggers.h
r375 r378 3 3 // See LICENSE.txt for details. 4 4 5 #ifndef _ FRAMS_LOGGERS_H_6 #define _ FRAMS_LOGGERS_H_5 #ifndef _COMMON_LOGGERS_H_ 6 #define _COMMON_LOGGERS_H_ 7 7 8 #include <frams/util/list.h>9 #include <frams/util/sstring.h>10 8 #include <common/log.h> 11 9 #include <common/threads.h> 10 #include <common/nonstd_stl.h> 12 11 13 12 class LoggerBase; … … 16 15 { 17 16 friend class LoggerBase; 18 SListTempl<LoggerBase*> handlers;19 void send(int level, const char *o, const char *m, int w, const char *bl);17 vector<LoggerBase*> loggers; 18 void send(int position, const char *obj, const char *method, int level, const char *msg); 20 19 public: 21 int find(LoggerBase *r) { return handlers.find(r); } 22 int add(LoggerBase *r); 20 int find(LoggerBase *logger) 21 { 22 vector<LoggerBase*>::iterator it = std::find(loggers.begin(), loggers.end(), logger); 23 return it == loggers.end() ? -1 : std::distance(loggers.begin(), it); 24 } 25 int add(LoggerBase *logger); 23 26 void remove(int i); 24 void remove(LoggerBase * r);27 void remove(LoggerBase *logger); 25 28 void removeAll(); 26 void send(const char *o , const char *m, int w, const char *bl)29 void send(const char *obj, const char *method, int level, const char *msg) 27 30 { 28 send( handlers.size() - 1, o, m, w, bl);31 send(loggers.size() - 1, obj, method, level, msg); 29 32 } 30 33 ~LoggerManager() { removeAll(); } … … 50 53 51 54 void logPrintf(const char *o, const char *m, int w, const char *bl, ...); 52 void send(const char *o , const char *m, int w, const char *bl);55 void send(const char *obj, const char *method, int level, const char *msg); 53 56 54 57 bool isEnabled() { return manager ? true : false; } … … 68 71 } 69 72 70 virtual void handle(const char *o , const char *m, int w, const char *bl) {}73 virtual void handle(const char *obj, const char *method, int level, const char *msg) {} 71 74 }; 72 75 … … 76 79 { 77 80 protected: 78 int maxlevel, minleveltostore, errcount, warncount, storedcount, infocount;79 SString msgs;81 int maxlevel, minleveltostore, errcount, warncount, infocount, storedcount; 82 string msgs; 80 83 81 84 public: 82 85 83 void reset() { maxlevel = LOG_INFO - 1; errcount = warncount = storedcount = infocount = 0; msgs = 0; }86 void reset() { maxlevel = LOG_INFO - 1; errcount = warncount = infocount = storedcount = 0; msgs = ""; } 84 87 85 88 enum Options2 … … 93 96 int getStoredCount() { return storedcount; } 94 97 int getErrorLevel() { return maxlevel; } 95 const SString&getMessages() { return msgs; }98 const string getMessages() { return msgs; } 96 99 97 100 LoggerToMemory(int opts = 0, int minimal_level_to_store = LOG_ERROR) :LoggerBase(opts), minleveltostore(minimal_level_to_store) … … 100 103 } 101 104 102 void handle(const char *o , const char *m, int w, const char *bl);105 void handle(const char *obj, const char *method, int level, const char *msg); 103 106 }; 104 107 … … 107 110 LoggerManager *other_manager; 108 111 public: 109 RedirectingLogger(LoggerManager *other_mgr, int opts=0)112 RedirectingLogger(LoggerManager *other_mgr, int opts = 0) 110 113 :LoggerBase(opts), other_manager(other_mgr) {} 111 114 112 void handle(const char *o , const char *m, int w, const char *bl)115 void handle(const char *obj, const char *method, int level, const char *msg) 113 116 { 114 other_manager->send(o , m, w, bl);117 other_manager->send(obj, method, level, msg); 115 118 } 116 119 };
Note: See TracChangeset
for help on using the changeset viewer.