The errlogClient doesn't maintain message boundaries, it just collects data in a buffer and passes it to send() when the buffer gets full or someone calls flush. If you look at that epicsStackTrace.c code you'll see that it calls errlogPrintf() in a loop, once for each stack item, with newline. This one TCP message from logClient.c can contain more or less than one logical errlog item. Compatibility with syslog would thus seem to require rather more changes than the alternatives.
The errlogClient doesn't maintain message boundaries, it just collects data in a buffer and passes it to send() when the buffer gets full or someone calls flush. If you look at that epicsStackTrace.c code you'll see that it calls errlogPrintf() in a loop, once for each stack item, with newline. This one TCP message from logClient.c can contain more or less than one logical errlog item. Compatibility with syslog would thus seem to require rather more changes than the alternatives.