⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventlogger.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}void getTextSingleUser(QQQQ) {  switch (theData[1])  {  case 0:    BaseString::snprintf(m_text, m_text_len, "Entering single user mode");    break;  case 1:    BaseString::snprintf(m_text, m_text_len,			 "Entered single user mode "			 "Node %d has exclusive access", theData[2]);    break;  case 2:    BaseString::snprintf(m_text, m_text_len,"Exiting single user mode");    break;  default:    BaseString::snprintf(m_text, m_text_len,			 "Unknown single user report %d", theData[1]);    break;  }}void getTextStartReport(QQQQ) {  Uint32 time = theData[2];  Uint32 sz = theData[3];  char mask1[100];  char mask2[100];  char mask3[100];  char mask4[100];  BitmaskImpl::getText(sz, theData + 4 + (0 * sz), mask1);  BitmaskImpl::getText(sz, theData + 4 + (1 * sz), mask2);  BitmaskImpl::getText(sz, theData + 4 + (2 * sz), mask3);  BitmaskImpl::getText(sz, theData + 4 + (3 * sz), mask4);  switch(theData[1]){  case 1: // Wait initial    BaseString::snprintf      (m_text, m_text_len,       "Initial start, waiting for %s to connect, "       " nodes [ all: %s connected: %s no-wait: %s ]",       mask4, mask1, mask2, mask3);    break;  case 2: // Wait partial    BaseString::snprintf      (m_text, m_text_len,       "Waiting until nodes: %s connects, "       "nodes [ all: %s connected: %s no-wait: %s ]",       mask4, mask1, mask2, mask3);    break;  case 3: // Wait partial timeout    BaseString::snprintf      (m_text, m_text_len,       "Waiting %u sec for nodes %s to connect, "       "nodes [ all: %s connected: %s no-wait: %s ]",              time, mask4, mask1, mask2, mask3);    break;  case 4: // Wait partioned    BaseString::snprintf      (m_text, m_text_len,       "Waiting for non partitioned start, "       "nodes [ all: %s connected: %s missing: %s no-wait: %s ]",              mask1, mask2, mask4, mask3);    break;  case 5:    BaseString::snprintf      (m_text, m_text_len,       "Waiting %u sec for non partitioned start, "       "nodes [ all: %s connected: %s missing: %s no-wait: %s ]",              time, mask1, mask2, mask4, mask3);    break;  case 0x8000: // Do initial    BaseString::snprintf      (m_text, m_text_len,       "Initial start with nodes %s [ missing: %s no-wait: %s ]",       mask2, mask4, mask3);    break;  case 0x8001: // Do start    BaseString::snprintf      (m_text, m_text_len,       "Start with all nodes %s",       mask2);    break;  case 0x8002: // Do partial    BaseString::snprintf      (m_text, m_text_len,       "Start with nodes %s [ missing: %s no-wait: %s ]",       mask2, mask4, mask3);    break;  case 0x8003: // Do partioned    BaseString::snprintf      (m_text, m_text_len,       "Start potentially partitioned with nodes %s "       " [ missing: %s no-wait: %s ]",       mask2, mask4, mask3);    break;  default:    BaseString::snprintf      (m_text, m_text_len,       "Unknown startreport: 0x%x [ %s %s %s %s ]",        theData[1],       mask1, mask2, mask3, mask4);  }}#if 0BaseString::snprintf(m_text, 		     m_text_len, 		     "Unknown event: %d",		     theData[0]);#endif/** * This matrix defines which event should be printed when * * threshold - is in range [0-15] * severity  - DEBUG to ALERT (Type of log message) */#define ROW(a,b,c,d) \{ NDB_LE_ ## a, b, c, d, getText ## a}const EventLoggerBase::EventRepLogLevelMatrix EventLoggerBase::matrix[] = {  // CONNECTION  ROW(Connected,               LogLevel::llConnection,  8, Logger::LL_INFO ),  ROW(Disconnected,            LogLevel::llConnection,  8, Logger::LL_ALERT ),  ROW(CommunicationClosed,     LogLevel::llConnection,  8, Logger::LL_INFO ),  ROW(CommunicationOpened,     LogLevel::llConnection,  8, Logger::LL_INFO ),  ROW(ConnectedApiVersion,     LogLevel::llConnection,  8, Logger::LL_INFO ),  // CHECKPOINT  ROW(GlobalCheckpointStarted, LogLevel::llCheckpoint,  9, Logger::LL_INFO ),  ROW(GlobalCheckpointCompleted,LogLevel::llCheckpoint,10, Logger::LL_INFO ),  ROW(LocalCheckpointStarted,  LogLevel::llCheckpoint,  7, Logger::LL_INFO ),  ROW(LocalCheckpointCompleted,LogLevel::llCheckpoint,  8, Logger::LL_INFO ),  ROW(LCPStoppedInCalcKeepGci, LogLevel::llCheckpoint,  0, Logger::LL_ALERT ),  ROW(LCPFragmentCompleted,    LogLevel::llCheckpoint, 11, Logger::LL_INFO ),  ROW(UndoLogBlocked,          LogLevel::llCheckpoint,  7, Logger::LL_INFO ),  // STARTUP  ROW(NDBStartStarted,         LogLevel::llStartUp,     1, Logger::LL_INFO ),  ROW(NDBStartCompleted,       LogLevel::llStartUp,     1, Logger::LL_INFO ),  ROW(STTORRYRecieved,         LogLevel::llStartUp,    15, Logger::LL_INFO ),  ROW(StartPhaseCompleted,     LogLevel::llStartUp,     4, Logger::LL_INFO ),  ROW(CM_REGCONF,              LogLevel::llStartUp,     3, Logger::LL_INFO ),  ROW(CM_REGREF,               LogLevel::llStartUp,     8, Logger::LL_INFO ),  ROW(FIND_NEIGHBOURS,         LogLevel::llStartUp,     8, Logger::LL_INFO ),  ROW(NDBStopStarted,          LogLevel::llStartUp,     1, Logger::LL_INFO ),  ROW(NDBStopCompleted,        LogLevel::llStartUp,     1, Logger::LL_INFO ),  ROW(NDBStopForced,           LogLevel::llStartUp,     1, Logger::LL_ALERT ),  ROW(NDBStopAborted,          LogLevel::llStartUp,     1, Logger::LL_INFO ),  ROW(StartREDOLog,            LogLevel::llStartUp,    10, Logger::LL_INFO ),  ROW(StartLog,                LogLevel::llStartUp,    10, Logger::LL_INFO ),  ROW(UNDORecordsExecuted,     LogLevel::llStartUp,    15, Logger::LL_INFO ),  ROW(StartReport,             LogLevel::llStartUp,     4, Logger::LL_INFO ),    // NODERESTART  ROW(NR_CopyDict,             LogLevel::llNodeRestart, 8, Logger::LL_INFO ),  ROW(NR_CopyDistr,            LogLevel::llNodeRestart, 8, Logger::LL_INFO ),  ROW(NR_CopyFragsStarted,     LogLevel::llNodeRestart, 8, Logger::LL_INFO ),  ROW(NR_CopyFragDone,         LogLevel::llNodeRestart,10, Logger::LL_INFO ),  ROW(NR_CopyFragsCompleted,   LogLevel::llNodeRestart, 8, Logger::LL_INFO ),  ROW(NodeFailCompleted,       LogLevel::llNodeRestart, 8, Logger::LL_ALERT),  ROW(NODE_FAILREP,            LogLevel::llNodeRestart, 8, Logger::LL_ALERT),  ROW(ArbitState,		LogLevel::llNodeRestart, 6, Logger::LL_INFO ),  ROW(ArbitResult,	        LogLevel::llNodeRestart, 2, Logger::LL_ALERT),  ROW(GCP_TakeoverStarted,     LogLevel::llNodeRestart, 7, Logger::LL_INFO ),  ROW(GCP_TakeoverCompleted,   LogLevel::llNodeRestart, 7, Logger::LL_INFO ),  ROW(LCP_TakeoverStarted,     LogLevel::llNodeRestart, 7, Logger::LL_INFO ),  ROW(LCP_TakeoverCompleted,   LogLevel::llNodeRestart, 7, Logger::LL_INFO ),  // STATISTIC  ROW(TransReportCounters,     LogLevel::llStatistic,   8, Logger::LL_INFO ),  ROW(OperationReportCounters, LogLevel::llStatistic,   8, Logger::LL_INFO ),   ROW(TableCreated,            LogLevel::llStatistic,   7, Logger::LL_INFO ),  ROW(JobStatistic,            LogLevel::llStatistic,   9, Logger::LL_INFO ),  ROW(SendBytesStatistic,      LogLevel::llStatistic,   9, Logger::LL_INFO ),  ROW(ReceiveBytesStatistic,   LogLevel::llStatistic,   9, Logger::LL_INFO ),  ROW(MemoryUsage,             LogLevel::llStatistic,   5, Logger::LL_INFO ),  // ERROR  ROW(TransporterError,        LogLevel::llError,  2, Logger::LL_ERROR   ),  ROW(TransporterWarning,      LogLevel::llError,  8, Logger::LL_WARNING ),  ROW(MissedHeartbeat,         LogLevel::llError,  8, Logger::LL_WARNING ),  ROW(DeadDueToHeartbeat,      LogLevel::llError,  8, Logger::LL_ALERT   ),  ROW(WarningEvent,            LogLevel::llError,  2, Logger::LL_WARNING ),  // INFO  ROW(SentHeartbeat,           LogLevel::llInfo,  12, Logger::LL_INFO ),  ROW(CreateLogBytes,          LogLevel::llInfo,  11, Logger::LL_INFO ),  ROW(InfoEvent,               LogLevel::llInfo,   2, Logger::LL_INFO ),  //Single User  ROW(SingleUser,              LogLevel::llInfo,   7, Logger::LL_INFO ),  // Backup  ROW(BackupStarted,           LogLevel::llBackup, 7, Logger::LL_INFO ),  ROW(BackupCompleted,         LogLevel::llBackup, 7, Logger::LL_INFO ),  ROW(BackupFailedToStart,     LogLevel::llBackup, 7, Logger::LL_ALERT),  ROW(BackupAborted,           LogLevel::llBackup, 7, Logger::LL_ALERT )};const Uint32 EventLoggerBase::matrixSize=sizeof(EventLoggerBase::matrix)/sizeof(EventRepLogLevelMatrix);EventLogger::EventLogger() : m_filterLevel(15){  setCategory("EventLogger");  enable(Logger::LL_INFO, Logger::LL_ALERT); }EventLogger::~EventLogger(){}boolEventLogger::open(const char* logFileName, int maxNoFiles, long maxFileSize, 		  unsigned int maxLogEntries){  return addHandler(new FileLogHandler(logFileName, maxNoFiles, maxFileSize, 				       maxLogEntries));}voidEventLogger::close(){  removeAllHandlers();}static NdbOut&operator<<(NdbOut& out, const LogLevel & ll){  out << "[LogLevel: ";  for(size_t i = 0; i<LogLevel::LOGLEVEL_CATEGORIES; i++)    out << ll.getLogLevel((LogLevel::EventCategory)i) << " ";  out << "]";  return out;}intEventLoggerBase::event_lookup(int eventType,			      LogLevel::EventCategory &cat,			      Uint32 &threshold, 			      Logger::LoggerLevel &severity,			      EventTextFunction &textF){  for(unsigned i = 0; i<EventLoggerBase::matrixSize; i++){    if(EventLoggerBase::matrix[i].eventType == eventType){      cat = EventLoggerBase::matrix[i].eventCategory;      threshold = EventLoggerBase::matrix[i].threshold;      severity = EventLoggerBase::matrix[i].severity;      textF= EventLoggerBase::matrix[i].textF;      return 0;    }  }  return 1;}const char*EventLogger::getText(char * dst, size_t dst_len,		     EventTextFunction textF,		     const Uint32* theData, NodeId nodeId ){  int pos= 0;  if (nodeId != 0)  {    BaseString::snprintf(dst, dst_len, "Node %u: ", nodeId);    pos= strlen(dst);  }  if (dst_len-pos > 0)    textF(dst+pos,dst_len-pos,theData);  return dst;}void EventLogger::log(int eventType, const Uint32* theData, NodeId nodeId,		 const LogLevel* ll){  Uint32 threshold = 0;  Logger::LoggerLevel severity = Logger::LL_WARNING;  LogLevel::EventCategory cat= LogLevel::llInvalid;  EventTextFunction textF;  DBUG_ENTER("EventLogger::log");  DBUG_PRINT("enter",("eventType=%d, nodeid=%d", eventType, nodeId));  if (EventLoggerBase::event_lookup(eventType,cat,threshold,severity,textF))    DBUG_VOID_RETURN;    Uint32 set = ll?ll->getLogLevel(cat) : m_logLevel.getLogLevel(cat);  DBUG_PRINT("info",("threshold=%d, set=%d", threshold, set));  if (ll)    DBUG_PRINT("info",("m_logLevel.getLogLevel=%d", m_logLevel.getLogLevel(cat)));  if (threshold <= set){    getText(m_text,sizeof(m_text),textF,theData,nodeId);    switch (severity){    case Logger::LL_ALERT:      alert(m_text);      break;    case Logger::LL_CRITICAL:      critical(m_text);       break;    case Logger::LL_WARNING:      warning(m_text);       break;    case Logger::LL_ERROR:      error(m_text);       break;    case Logger::LL_INFO:      info(m_text);       break;    case Logger::LL_DEBUG:      debug(m_text);       break;    default:      info(m_text);       break;    }  } // if (..  DBUG_VOID_RETURN;}intEventLogger::getFilterLevel() const{  return m_filterLevel;}void EventLogger::setFilterLevel(int filterLevel){  m_filterLevel = filterLevel;}//// PRIVATE//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -