Hi,
Thanks for the compliments :) Right now syslog-ng doesn't really support arrays, although we had plans about those in the past, but nothing concrete yet.
syslog-ng has builtin support for tags (e.g. the tags() option for various sources and the db-parser()/patterndb configuration files), but those can also be limited a bit. Can you elaborate about your usecase? What part of your setup would associate the tags with the message?
To add arrays to syslog-ng, one would need to add the appropriate logic to $(format-json), we've figured that the flat name-value pairs structure of syslog-ng would simply be formatted to be an array. Given the following set of name-value pairs:
tags[0] = 'foo'
tags[1] = 'bar'
tags[2] = 'baz'
Would become an array automatically, when formatted via format-json, e.g.
tags = [ "foo", "bar", "baz" ]
The only part missing is basically the recognition that a specific name has brackets at the end and sorting the elements properly. (right now we iterate in alphabetical order, which wouldn't work with numerical indices).
Once this is in place, we would only need to add some rewrite operations to "append"/"pop" on an existing array.
Such a contribution would be absolutely appreciated.
Cheers,
Bazsi