On Mon, 2004-12-13 at 09:44, Roberto Nibali wrote:
Hi Bazsi,
I'm under the distinct impression that something like that has already been addressed in the past. Maybe it was a copy'n'paste error or so ...
it was removed by intent, as that code path is processed when template() is specified by the user. if you want to include the pri/level then you need to add it into your template:
destination d_udp { udp("1.2.3.4" template("<$TAG>$DATE $HOST $MSG\n"); };
Colour me stupid but this does not provide me with the same functionality. If I provide the prio/level (it's translated into hex, when you read the tcpdump output; which I don't recall being valid by the specs) the code fails in log.c:
Jan 1 00:00:00 unparseable log message: \"<4e>Dec 13 07:05:01 [snip]\"
This is the code snippet that gets hit:
if (left && src[0] == '<') { src++; left--; pri = 0; while (left && *src != '>') { if (isdigit(*src)) { ^^^^^^^ my tcpdump shows me 4e for my prio/level combo I send
pri = pri * 10 + ((*src) - '0'); } else { lm->msg = c_format_cstring("unparseable log message: \"%s\"", length, data); lm->pri = LOG_SYSLOG | LOG_ERR; return; } src++; left--; } lm->pri = pri; if (left) { src++; left--; }
Please consider applying the patch, or tell me what I'm missing. I'll patch my local copy of syslog-ng because I'm honestly unable to configure it they way you think it should be working. Thanks and best regards,
sorry, it is not the TAG macro, but the PRI macro, so it should read: template("<$PRI>$DATE $HOST $MSG\n"); -- Bazsi