X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Flogging.c;h=2905dd1e65ee4245ac41ca660785f7e0d99cdfb1;hb=384befc18f81f42d2dd6e324a35904ad037b3af7;hp=5149e021c2d24bab5ccfad989dc1bc0b18f2c706;hpb=c18c6fea968e72403f9a7b75d6f7f8e3f9e8757f;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/logging.c b/KernelLand/Kernel/logging.c index 5149e021..2905dd1e 100644 --- a/KernelLand/Kernel/logging.c +++ b/KernelLand/Kernel/logging.c @@ -114,9 +114,7 @@ void Log_AddEvent(const char *Ident, int Level, const char *Format, va_list Args { #define LOG_HDR_LEN (14+1+2+8+2) char newData[ LOG_HDR_LEN + len + 2 + 1 ]; - char _ident[9]; - strncpy(_ident, Ident, 9); - sprintf( newData, "%014lli%s [%-8s] ", + sprintf( newData, "%014lli%s [%-8.8s] ", ent->Time, csaLevelCodes[Level], Ident); strcpy( newData + LOG_HDR_LEN, ent->Data ); strcpy( newData + LOG_HDR_LEN + len, "\r\n" ); @@ -127,16 +125,14 @@ void Log_AddEvent(const char *Ident, int Level, const char *Format, va_list Args Mutex_Acquire( &glLog ); ent->Next = gLog.Tail; - if(gLog.Head) - gLog.Tail = ent; - else - gLog.Tail = gLog.Head = ent; + tLogEntry **pnp = (gLog.Tail ? &gLog.Tail->Next : &gLog.Head); + *pnp = ent; + gLog.Tail = ent; ent->LevelNext = gLog_Levels[Level].Tail; - if(gLog_Levels[Level].Head) - gLog_Levels[Level].Tail = ent; - else - gLog_Levels[Level].Tail = gLog_Levels[Level].Head = ent; + pnp = (gLog_Levels[Level].Tail ? &gLog_Levels[Level].Tail->LevelNext : &gLog_Levels[Level].Head); + *pnp = ent; + gLog_Levels[Level].Tail = ent; Mutex_Release( &glLog ); # endif @@ -163,10 +159,11 @@ void Log_Int_PrintMessage(tLogEntry *Entry) csaLevelColours[Entry->Level], Entry->Time ); - LogF("%s [%-8s] %i - %s", + LogF("%s [%-8s] %i - %.*s", csaLevelCodes[Entry->Level], Entry->Ident, Threads_GetTID(), + Entry->Length, Entry->Data ); LogF("\x1B[0m\r\n"); // Separate in case Entry->Data is too long