syslog
This commit is contained in:
parent
6b593988ec
commit
ccf6982b62
@ -66,27 +66,37 @@ static void flashGreenLed(void *handle) {
|
||||
|
||||
static int innerLogMsg(const char *pre, const char *post, bool syslogToo, const char *format, va_list vl) {
|
||||
const static char SYSLOG_HEADER[] = "<133>1 ";
|
||||
#define MAX_PREFIX_SIZE 20
|
||||
int res = -1;
|
||||
int offset = 0;
|
||||
char msgBuffer[MSGBUFFER_SIZE+20];
|
||||
memset(msgBuffer, 0, MSGBUFFER_SIZE+20);
|
||||
char msgBuffer[MSGBUFFER_SIZE+MAX_PREFIX_SIZE];
|
||||
char *bufferStart;
|
||||
memset(msgBuffer, 0, MSGBUFFER_SIZE+MAX_PREFIX_SIZE);
|
||||
|
||||
|
||||
strcpy(msgBuffer, SYSLOG_HEADER);
|
||||
offset += strlen(SYSLOG_HEADER);
|
||||
if (pre) {
|
||||
strcpy(msgBuffer+offset, pre);
|
||||
offset += strlen(pre);
|
||||
uint16_t syslogHeaderSize = strlen(SYSLOG_HEADER);
|
||||
uint16_t preSize = (pre) ? strlen(pre) : 0;
|
||||
uint16_t prefixSize = (syslogHeaderSize > preSize) ? syslogHeaderSize : preSize;
|
||||
if (prefixSize > MAX_PREFIX_SIZE) {
|
||||
return -1;
|
||||
}
|
||||
int vcnt = vsnprintf(msgBuffer+offset, MSGBUFFER_SIZE, format, vl);
|
||||
bufferStart = msgBuffer + prefixSize;
|
||||
|
||||
int vcnt = vsnprintf(bufferStart, MSGBUFFER_SIZE, format, vl);
|
||||
if (vcnt < MSGBUFFER_SIZE) {
|
||||
if (true || syslogToo) {
|
||||
memcpy(bufferStart - syslogHeaderSize, SYSLOG_HEADER, syslogHeaderSize);
|
||||
syslog(bufferStart - syslogHeaderSize);
|
||||
}
|
||||
|
||||
if (pre) {
|
||||
memcpy(bufferStart - preSize, pre, preSize);
|
||||
}
|
||||
if (post) {
|
||||
strcat(msgBuffer, post);
|
||||
strcat(bufferStart - preSize, post);
|
||||
}
|
||||
|
||||
HAL_NVIC_DisableIRQ(UART4_IRQn);
|
||||
res = ringbufferPut(&logBuffer, (uint8_t*) msgBuffer, strlen(msgBuffer));
|
||||
res = ringbufferPut(&logBuffer, (uint8_t*) (bufferStart - preSize), strlen(bufferStart - preSize));
|
||||
HAL_NVIC_EnableIRQ(UART4_IRQn);
|
||||
|
||||
if (-1 == res) {
|
||||
@ -95,11 +105,8 @@ static int innerLogMsg(const char *pre, const char *post, bool syslogToo, const
|
||||
schAdd(flashGreenLed, NULL, 100, 0);
|
||||
}
|
||||
debugTxCpltCallback(NULL);
|
||||
|
||||
if (true) {
|
||||
syslog(msgBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user