Many changes, bugfixes to user vsnprintf and to escape code handling
[tpg/acess2.git] / Kernel / logging.c
index ad63a21..f4a23b4 100644 (file)
@@ -21,7 +21,11 @@ enum eLogLevels
        LOG_LEVEL_DEBUG,
        NUM_LOG_LEVELS
 };
-const char     *csaLevelCodes[] = {"k","p","f","e","w","n","l","d"};
+const char     *csaLevelColours[] = {
+               "\x1B[35m", "\x1B[34m", "\x1B[36m", "\x1B[31m",
+               "\x1B[33m", "\x1B[32m", "\x1B[0m", "\x1B[0m"
+               };
+const char     *csaLevelCodes[] =  {"k","p","f","e","w","n","l","d"};
 
 // === TYPES ===
 typedef struct sLogEntry
@@ -29,9 +33,9 @@ typedef struct sLogEntry
        struct sLogEntry        *Next;
        struct sLogEntry        *LevelNext;
        Sint64  Time;
-       char    Ident[8];
         int    Level;
         int    Length;
+       char    Ident[9];
        char    Data[];
 }      tLogEntry;
 typedef struct sLogList
@@ -79,17 +83,17 @@ void Log_AddEvent(char *Ident, int Level, char *Format, va_list Args)
        
        len = vsnprintf(NULL, 256, Format, Args);
        
-       Log("len = %i", len);
+       //Log("len = %i", len);
        
        ent = malloc(sizeof(tLogEntry)+len+1);
        ent->Time = now();
-       strncpy(ent->Ident, Ident, 7);
+       strncpy(ent->Ident, Ident, 8);
        ent->Level = Level;
        ent->Length = len;
        vsnprintf( ent->Data, 256, Format, Args );
        
-       Log("ent->Ident = '%s'", ent->Ident);
-       Log("ent->Data = '%s'", ent->Data);
+       //Log("ent->Ident = '%s'", ent->Ident);
+       //Log("ent->Data = '%s'", ent->Data);
        
        LOCK( &glLog );
        
@@ -118,7 +122,8 @@ void Log_AddEvent(char *Ident, int Level, char *Format, va_list Args)
  */
 void Log_Int_PrintMessage(tLogEntry *Entry)
 {
-       LogF("%018i% [%8s] %s\n",
+       LogF("%s%018lli%s [%+8s] %s\x1B[0m\n",
+               csaLevelColours[Entry->Level],
                Entry->Time,
                csaLevelCodes[Entry->Level],
                Entry->Ident,

UCC git Repository :: git.ucc.asn.au