[syslog-ng] greedy parser still broken?
Jiann-Ming Su
su_js1 at yahoo.com
Tue Aug 3 19:37:30 CEST 2010
----- Original Message ----
> From: Balazs Scheidler <bazsi at balabit.hu>
> To: Syslog-ng users' and developers' mailing list <syslog-ng at lists.balabit.hu>
> Sent: Mon, August 2, 2010 10:25:24 AM
> Subject: Re: [syslog-ng] greedy parser still broken?
>
> On Fri, 2010-07-30 at 11:44 -0700, Jiann-Ming Su wrote:
> > I've reopened bug 87 (https://bugzilla.balabit.com/show_bug.cgi?id=87)
>because I
>
> > think the greedy flag is still broken. I've updated the bug with my
> > observations. Can someone else offer any more insight? Thanks.
>
> Can you please give us concrete examples what input you give it and what
> your expectations are?
>
Please refer to comment #2 of the bug
(https://bugzilla.balabit.com/show_bug.cgi?id=87#c2).
Sample syslog message: Jul 27 19:55:33 myhost ZabbixConnector.log :
19:55:32,782 INFO [Thread-2834] - [ZabbixEventSyncCommand] Processing
message <?xml version="1.0" encoding="UTF-8"?>
The following template and parser combination: template t_esb {
template("${ESB.LOG}, ${ESB.MSG}\n"); }; parser p_app_esb {
csv-parser(columns("ESB.LOG","ESB.MSG") delimiters(" ") flags(greedy)); };
Yields (yes, just the comma): ,
If I remove the greedy flag: ZabbixConnector.log, :
So without the greedy flag, the ESB.LOG and ESB.MSG columns are captured. In
this case, since the delimiter is a space (" "), the first column (ESB.LOG) is
properly captured as "ZabbixConnector.log" and the second column (ESB.MSG) the
next non space character, the colon (:).
With the greedy flag, I was expecting the second column (ESB.MSG) to capture the
rest of line as well.
ESB.LOG: ZabbixConnector.log
ESB.MSG: : 19:55:32,782 INFO [Thread-2834] - [ZabbixEventSyncCommand]
Processing message <?xml version="1.0"encoding="UTF-8"?>
But, with the greedy flag on, it seems like neither column is captured properly
as demonstrated by only the comma(,) being printed as prescribed by the
template.
> It'd be especially useful if you could add the case to the unit test
> program (tests/unit/test_csvparser.c) by copying & adjusting the
> examples already there.
>
Okay, I will try to get this uploaded for you.
> It is quite tricky to get this right, so I'd like to avoid breaking it
> in the future.
>
Thank you very much for your response.
More information about the syslog-ng
mailing list