Include outcode and continuation marker, move testlog test command up.
Moving the testlog command up reduces the dependency loops in servlog
This commit is contained in:
54
servlog.c
54
servlog.c
@@ -82,6 +82,28 @@ typedef struct __LogLog {
|
||||
static pCaptureEntry pCapture = NULL;
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
static char* OutCodeToTxt(OutCode eOut)
|
||||
{
|
||||
switch (eOut) {
|
||||
case eInternal: return "Int"; /* internal */
|
||||
case eCommand: return "Cmd"; /* reserved, not used */
|
||||
case eHWError: return "ErH"; /* reserved, used only for SICSLog */
|
||||
case eInError: return "ErI"; /* reserved, used as a mark in the handling of output codes */
|
||||
case eStatus: return "Sta"; /* reserved, deprecated */
|
||||
case eValue: return "Val"; /* value reponse: copied into Tcl */
|
||||
case eStart: return "Beg"; /* start message */
|
||||
case eFinish: return "End"; /* finish message */
|
||||
case eEvent: return "Evt"; /* some callback messages */
|
||||
case eWarning: return "Wrn"; /* warnings */
|
||||
case eError: return "Err"; /* error: copied into Tcl */
|
||||
case eHdbValue: return "HVa"; /* hipadaba value chnage */
|
||||
case eHdbEvent: return "HEv"; /* Hipadaba event */
|
||||
case eLog: return "Log"; /* log message: is always written to client */
|
||||
case eLogError: return "ErL"; /* error message to log: is always written to client */
|
||||
}
|
||||
return "???";
|
||||
}
|
||||
|
||||
int KillCapture(SConnection * pCon)
|
||||
{
|
||||
pCaptureEntry pCurrent, pTemp;
|
||||
@@ -325,7 +347,7 @@ static void SICSLogWriteFile(char *pText, OutCode eOut, struct timeval *tp)
|
||||
|
||||
if (iLineCount == 0)
|
||||
fprintf(fLogFile, "%s: <<<open logfile>>>\n", timestamp(NULL));
|
||||
fprintf(fLogFile, "%s: ", timestamp(tp));
|
||||
fprintf(fLogFile, "%s:%s:", timestamp(tp), OutCodeToTxt(eOut));
|
||||
fprintf(fLogFile, "%s", pText);
|
||||
if (text_len < 1 || pText[text_len - 1] != '\n')
|
||||
fprintf(fLogFile, "\n");
|
||||
@@ -351,6 +373,8 @@ void SICSLogWriteTime(char *pText, OutCode eOut, struct timeval *tp)
|
||||
buf[idx++] = '\0';
|
||||
SICSLogWriteFile(buf, eOut, tp);
|
||||
idx = 0;
|
||||
buf[idx++] = '*';
|
||||
buf[idx++] = ':';
|
||||
} else if (*cp == '\r') {
|
||||
buf[idx++] = '\\';
|
||||
buf[idx++] = 'r';
|
||||
@@ -372,6 +396,8 @@ void SICSLogWriteTime(char *pText, OutCode eOut, struct timeval *tp)
|
||||
buf[idx++] = '\0';
|
||||
SICSLogWriteFile(buf, eOut, tp);
|
||||
idx = 0;
|
||||
buf[idx++] = '*';
|
||||
buf[idx++] = ':';
|
||||
}
|
||||
}
|
||||
if (idx > 0) {
|
||||
@@ -521,29 +547,3 @@ void SICSLogPrintf(OutCode eOut, const char *fmt, ...)
|
||||
SICSLogWrite(buf, eOut);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Test of the logging facilities */
|
||||
int testLogCmd(SConnection *pCon, SicsInterp *pInter, void *pData,
|
||||
int argc, char *argv[]) {
|
||||
char lbuf[2048];
|
||||
char sbuf[1000];
|
||||
int i;
|
||||
SICSLogWrite("Multiline:\nLine 1\r\nLine 2\r\nLine 3\r\n", eStatus);
|
||||
memset(lbuf, 0, sizeof(lbuf));
|
||||
memset(sbuf, ' ', sizeof(sbuf));
|
||||
SICSLogPrintf(eStatus, "Hexlog %d all zero bytes", sizeof(lbuf));
|
||||
SICSLogWriteHex(lbuf, sizeof(lbuf), eStatus);
|
||||
for (i = 0; i <= 128; ++i)
|
||||
sbuf[i] = sbuf[sizeof(sbuf) - 1 - i] = i;
|
||||
sbuf[sizeof(sbuf) / 2] = '!';
|
||||
SICSLogPrintf(eStatus, "Hexlog %d mid space bytes", sizeof(sbuf));
|
||||
SICSLogWriteHex(sbuf, sizeof(sbuf), eStatus);
|
||||
for (i = 0; i < 1000; ++i)
|
||||
sbuf[i] = ' ' + (i % 96);
|
||||
sbuf[sizeof(sbuf) - 1] = '\0';
|
||||
SICSLogWrite("Very long line 1000 bytes", eStatus);
|
||||
SICSLogWrite(sbuf, eStatus);
|
||||
SCSendOK(pCon);
|
||||
return OKOK;
|
||||
}
|
||||
|
||||
|
||||
@@ -290,6 +290,32 @@ static int MacroFileEvalGlob(SConnection * pCon, SicsInterp * pInter, void *pDat
|
||||
SCSendOK(pCon);
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* Test of the logging facilities */
|
||||
int testLogCmd(SConnection *pCon, SicsInterp *pInter, void *pData,
|
||||
int argc, char *argv[]) {
|
||||
char lbuf[2048];
|
||||
char sbuf[1000];
|
||||
int i;
|
||||
SICSLogWrite("Multiline:\nLine 1\r\nLine 2\r\nLine 3\r\n", eStatus);
|
||||
memset(lbuf, 0, sizeof(lbuf));
|
||||
memset(sbuf, ' ', sizeof(sbuf));
|
||||
SICSLogPrintf(eStatus, "Hexlog %d all zero bytes", sizeof(lbuf));
|
||||
SICSLogWriteHex(lbuf, sizeof(lbuf), eStatus);
|
||||
for (i = 0; i <= 128; ++i)
|
||||
sbuf[i] = sbuf[sizeof(sbuf) - 1 - i] = i;
|
||||
sbuf[sizeof(sbuf) / 2] = '!';
|
||||
SICSLogPrintf(eStatus, "Hexlog %d mid space bytes", sizeof(sbuf));
|
||||
SICSLogWriteHex(sbuf, sizeof(sbuf), eStatus);
|
||||
for (i = 0; i < 1000; ++i)
|
||||
sbuf[i] = ' ' + (i % 96);
|
||||
sbuf[sizeof(sbuf) - 1] = '\0';
|
||||
SICSLogWrite("Very long line 1000 bytes", eStatus);
|
||||
SICSLogWrite(sbuf, eStatus);
|
||||
SCSendOK(pCon);
|
||||
return OKOK;
|
||||
}
|
||||
|
||||
void SiteInit(void) {
|
||||
int NetWatchInit(void);
|
||||
NetWatchInit();
|
||||
|
||||
Reference in New Issue
Block a user