[syslog-ng] include file syntax

Balazs Scheidler bazsi at balabit.hu
Wed Dec 10 16:29:18 CET 2008


This is a repost of my blog bost at http://bazsi.blogs.balabit.com/, if
you have an opinion about the subject please either reply to this
e-mail, or post a comment on my blog.


I'm about to implement configuration file includes, and although the
implementation is quite straightforward, the syntax to be used is
something to give a thought or two.

Currently the syslog-ng configuration file consists of statements, each
with the following basic format:

stmt [] { ... };

The "id" gives a unique identifier of the statement, and the braces
enclose the contents. Currently only the ID part is optional, the braces
are always there.

To make the include statement consistent with that, it'd have to look
something like:

include { "filename" };

Obviously I don't like this too much, as it is way different from all
other applications permitting the use of include statements. What about

include "filename";

E.g. use the ID part the name of the file to be included. I like this
better. A third option might be the use of 'pragma' directives,
currently only used to specify the file format compatibility in the case
of syslog-ng 3.0:

@version: 3.0

This'd mean that include statements would look like this:

@include: filename

The problem with this last option is that pragmas are currently only
processed at the beginning of the configuration file. So that code
should also be generalized.

I think I'd go with the second option, that's not completely
inconsistent, but still the most intuitive to use.

What do you think?


More information about the syslog-ng mailing list