- vsnprintf( ent->Data, 256, Format, Args );
-
- //Log("ent->Ident = '%s'", ent->Ident);
- //Log("ent->Data = '%s'", ent->Data);
-
- LOCK( &glLog );
+ vsnprintf( ent->Data, len+1, Format, Args );
+
+ #if CACHE_MESSAGES
+ # if USE_RING_BUFFER
+ {
+ #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] ",
+ ent->Time, csaLevelCodes[Level], Ident);
+ strcpy( newData + LOG_HDR_LEN, ent->Data );
+ strcpy( newData + LOG_HDR_LEN + len, "\r\n" );
+ gpLog_RingBuffer->Space = RING_BUFFER_SIZE; // Needed to init the buffer
+ RingBuffer_Write( gpLog_RingBuffer, newData, LOG_HDR_LEN + len + 2 );
+ }
+ # else
+ Mutex_Acquire( &glLog );