Hi all,

rsyslog supports BSD-style blocks (e.g. !programname) since ages. With the new 
v7 config syntax, they become very complex to use (as as a side-effect the 
current block setting will be applied to all filters and actions, regardless of 
the nesting level[1] the filter is in). This causes complex program logic 
(read: bug potential) and makes the config file very hard to understand and 
easy to get wrong (especially with when an include file is improperly crafted).

To avoid all this, I intend to drop support for BSD-style blocks in v7. When 
such a block is encountered, an error message pointing to a "how to replace it" 
link will be emitted.

If anybody thinks BSD style blocks are a "must have", please speak up now, and 
with good arguments. Otherwise, they'll disappear very soon.

Thanks,
Rainer

[1]Think that the new engine supports nesting. Now think of the potential 
side-effects of such a construct:

!progname1 # NO LONGER POSSIBLE
if $msg contains 'test' then  {
        !progname2 # NO LONGER POSSIBLE
        action(type="omfile" )
        *.* :mmjsonparse:
                & ~
                & action(type="aa")
        !progname4 # NO LONGER POSSIBLE
        if $msg contains 'test2' then
                *.*  /home/rger/proj/rsyslog/logfile
        else
                /home/rger/proj/rsyslog/logfile2

}
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards

Reply via email to