// Enable debug log void EnableDebugLog(CEDAR *c) { // Validate arguments if (c == NULL || c->DebugLog != NULL) { return; } c->DebugLog = NewLog("cedar_debug_log", "cedar", LOG_SWITCH_NO); }
// Start Cedar log void StartCedarLog() { if (cedar_log_ref == NULL) { cedar_log_ref = NewRef(); } else { AddRef(cedar_log_ref); } cedar_log = NewLog("debug_log", "debug", LOG_SWITCH_DAY); }
//把程序行为放到LOG里 VOID UpdateLog(PTSTR pData) { PMESSAGE pTempM; ULONG TempLength = 0; MUTEX_P(LogMutex); if(Log->Length > MAX_MESSAGE - 500) { NewLog(); } // /*typedef struct _log { ULONG Length; struct _log * Next; TCHAR Message[MAX_MESSAGE]; }LOG_BUF,*PLOG_BUF; typedef struct { ULONG Sequence; TCHAR Message[0]; }MESSAGE,*PMESSAGE;*/ pTempM = (PMESSAGE)(Log->Message + Log->Length);//Log->Message+Log->Length后指针指向之前存的字符串的末尾 //然后再装入数据知道指定长度 if(pTempM == NULL) { DbgPrint("pTempM == NULL\n"); } else { TempLength = sprintf(pTempM->Message,"%s",pData); Log->Length +=TempLength + 1; } MUTEX_V(LogMutex); return ; }