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) {
|
static int innerLogMsg(const char *pre, const char *post, bool syslogToo, const char *format, va_list vl) {
|
||||||
const static char SYSLOG_HEADER[] = "<133>1 ";
|
const static char SYSLOG_HEADER[] = "<133>1 ";
|
||||||
|
#define MAX_PREFIX_SIZE 20
|
||||||
int res = -1;
|
int res = -1;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
char msgBuffer[MSGBUFFER_SIZE+20];
|
char msgBuffer[MSGBUFFER_SIZE+MAX_PREFIX_SIZE];
|
||||||
memset(msgBuffer, 0, MSGBUFFER_SIZE+20);
|
char *bufferStart;
|
||||||
|
memset(msgBuffer, 0, MSGBUFFER_SIZE+MAX_PREFIX_SIZE);
|
||||||
|
|
||||||
|
uint16_t syslogHeaderSize = strlen(SYSLOG_HEADER);
|
||||||
strcpy(msgBuffer, SYSLOG_HEADER);
|
uint16_t preSize = (pre) ? strlen(pre) : 0;
|
||||||
offset += strlen(SYSLOG_HEADER);
|
uint16_t prefixSize = (syslogHeaderSize > preSize) ? syslogHeaderSize : preSize;
|
||||||
if (pre) {
|
if (prefixSize > MAX_PREFIX_SIZE) {
|
||||||
strcpy(msgBuffer+offset, pre);
|
return -1;
|
||||||
offset += strlen(pre);
|
|
||||||
}
|
}
|
||||||
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 (vcnt < MSGBUFFER_SIZE) {
|
||||||
|
if (true || syslogToo) {
|
||||||
|
memcpy(bufferStart - syslogHeaderSize, SYSLOG_HEADER, syslogHeaderSize);
|
||||||
|
syslog(bufferStart - syslogHeaderSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pre) {
|
||||||
|
memcpy(bufferStart - preSize, pre, preSize);
|
||||||
|
}
|
||||||
if (post) {
|
if (post) {
|
||||||
strcat(msgBuffer, post);
|
strcat(bufferStart - preSize, post);
|
||||||
}
|
}
|
||||||
|
|
||||||
HAL_NVIC_DisableIRQ(UART4_IRQn);
|
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);
|
HAL_NVIC_EnableIRQ(UART4_IRQn);
|
||||||
|
|
||||||
if (-1 == res) {
|
if (-1 == res) {
|
||||||
@ -95,11 +105,8 @@ static int innerLogMsg(const char *pre, const char *post, bool syslogToo, const
|
|||||||
schAdd(flashGreenLed, NULL, 100, 0);
|
schAdd(flashGreenLed, NULL, 100, 0);
|
||||||
}
|
}
|
||||||
debugTxCpltCallback(NULL);
|
debugTxCpltCallback(NULL);
|
||||||
|
|
||||||
if (true) {
|
|
||||||
syslog(msgBuffer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user