summaryrefslogtreecommitdiff
path: root/ndb/include/kernel/LogLevel.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/include/kernel/LogLevel.hpp')
-rw-r--r--ndb/include/kernel/LogLevel.hpp133
1 files changed, 56 insertions, 77 deletions
diff --git a/ndb/include/kernel/LogLevel.hpp b/ndb/include/kernel/LogLevel.hpp
index 10cd0d43bee..467f0604edd 100644
--- a/ndb/include/kernel/LogLevel.hpp
+++ b/ndb/include/kernel/LogLevel.hpp
@@ -45,81 +45,31 @@ public:
* Copy operator
*/
LogLevel & operator= (const LogLevel &);
-
- static const Uint32 MIN_LOGLEVEL_ID = CFG_LOGLEVEL_STARTUP;
-
- enum EventCategory {
- /**
- * Events during all kind of startups
- */
- llStartUp = CFG_LOGLEVEL_STARTUP - MIN_LOGLEVEL_ID,
-
- /**
- * Events during shutdown
- */
- llShutdown = CFG_LOGLEVEL_SHUTDOWN - MIN_LOGLEVEL_ID,
-
- /**
- * Transaction statistics
- * Job level
- * TCP/IP speed
- */
- llStatistic = CFG_LOGLEVEL_STATISTICS - MIN_LOGLEVEL_ID,
-
- /**
- * Checkpoints
- */
- llCheckpoint = CFG_LOGLEVEL_CHECKPOINT - MIN_LOGLEVEL_ID,
-
- /**
- * Events during node restart
- */
- llNodeRestart = CFG_LOGLEVEL_NODERESTART - MIN_LOGLEVEL_ID,
-
- /**
- * Events related to connection / communication
- */
- llConnection = CFG_LOGLEVEL_CONNECTION - MIN_LOGLEVEL_ID,
-
- /**
- * Assorted event w.r.t unexpected happenings
- */
- llError = CFG_LOGLEVEL_ERROR - MIN_LOGLEVEL_ID,
-
- /**
- * Assorted event w.r.t warning
- */
- llWarning = CFG_LOGLEVEL_WARNING - MIN_LOGLEVEL_ID,
-
- /**
- * Assorted event w.r.t information
- */
- llInfo = CFG_LOGLEVEL_INFO - MIN_LOGLEVEL_ID,
-
- /**
- * Events related to global replication
- */
- llGrep = CFG_LOGLEVEL_GREP - MIN_LOGLEVEL_ID
- };
- struct LogLevelCategoryName {
- const char* name;
+ enum EventCategory {
+ llInvalid = -1,
+ llStartUp = CFG_LOGLEVEL_STARTUP - CFG_MIN_LOGLEVEL,
+ llShutdown = CFG_LOGLEVEL_SHUTDOWN - CFG_MIN_LOGLEVEL,
+ llStatistic = CFG_LOGLEVEL_STATISTICS - CFG_MIN_LOGLEVEL,
+ llCheckpoint = CFG_LOGLEVEL_CHECKPOINT - CFG_MIN_LOGLEVEL,
+ llNodeRestart = CFG_LOGLEVEL_NODERESTART - CFG_MIN_LOGLEVEL,
+ llConnection = CFG_LOGLEVEL_CONNECTION - CFG_MIN_LOGLEVEL,
+ llInfo = CFG_LOGLEVEL_INFO - CFG_MIN_LOGLEVEL,
+ llWarning = CFG_LOGLEVEL_WARNING - CFG_MIN_LOGLEVEL,
+ llError = CFG_LOGLEVEL_ERROR - CFG_MIN_LOGLEVEL,
+ llGrep = CFG_LOGLEVEL_GREP - CFG_MIN_LOGLEVEL,
+ llDebug = CFG_LOGLEVEL_DEBUG - CFG_MIN_LOGLEVEL
+ ,llBackup = CFG_LOGLEVEL_BACKUP - CFG_MIN_LOGLEVEL
};
/**
- * Log/event level category names. Remember to update the names whenever
- * a new category is added.
- */
- static const LogLevelCategoryName LOGLEVEL_CATEGORY_NAME[];
-
- /**
* No of categories
*/
-#define _LOGLEVEL_CATEGORIES 10
- static const Uint32 LOGLEVEL_CATEGORIES = _LOGLEVEL_CATEGORIES;
-
+#define _LOGLEVEL_CATEGORIES (CFG_MAX_LOGLEVEL - CFG_MIN_LOGLEVEL + 1)
+ STATIC_CONST( LOGLEVEL_CATEGORIES = _LOGLEVEL_CATEGORIES );
+
void clear();
-
+
/**
* Note level is valid as 0-15
*/
@@ -130,26 +80,33 @@ public:
*/
Uint32 getLogLevel(EventCategory ec) const;
+ /**
+ * Set this= max(this, ll) per category
+ */
+ LogLevel& set_max(const LogLevel& ll);
+
+ bool operator==(const LogLevel& l) const {
+ return memcmp(this, &l, sizeof(* this)) == 0;
+ }
+
+ LogLevel& operator=(const class EventSubscribeReq & req);
+
private:
/**
* The actual data
*/
- Uint32 logLevelData[LOGLEVEL_CATEGORIES];
-
- LogLevel(const LogLevel &);
+ Uint8 logLevelData[LOGLEVEL_CATEGORIES];
};
inline
LogLevel::LogLevel(){
- clear();
+ clear();
}
inline
LogLevel &
LogLevel::operator= (const LogLevel & org){
- for(Uint32 i = 0; i<LOGLEVEL_CATEGORIES; i++){
- logLevelData[i] = org.logLevelData[i];
- }
+ memcpy(logLevelData, org.logLevelData, sizeof(logLevelData));
return * this;
}
@@ -165,7 +122,7 @@ inline
void
LogLevel::setLogLevel(EventCategory ec, Uint32 level){
assert(ec >= 0 && (Uint32) ec < LOGLEVEL_CATEGORIES);
- logLevelData[ec] = level;
+ logLevelData[ec] = (Uint8)level;
}
inline
@@ -173,8 +130,30 @@ Uint32
LogLevel::getLogLevel(EventCategory ec) const{
assert(ec >= 0 && (Uint32) ec < LOGLEVEL_CATEGORIES);
- return logLevelData[ec];
+ return (Uint32)logLevelData[ec];
+}
+
+inline
+LogLevel &
+LogLevel::set_max(const LogLevel & org){
+ for(Uint32 i = 0; i<LOGLEVEL_CATEGORIES; i++){
+ if(logLevelData[i] < org.logLevelData[i])
+ logLevelData[i] = org.logLevelData[i];
+ }
+ return * this;
}
+#include <signaldata/EventSubscribeReq.hpp>
+
+inline
+LogLevel&
+LogLevel::operator=(const EventSubscribeReq& req)
+{
+ clear();
+ for(size_t i = 0; i<req.noOfEntries; i++){
+ logLevelData[(req.theData[i] >> 16)] = req.theData[i] & 0xFFFF;
+ }
+ return * this;
+}
#endif