rsyslog configuration scoping
Starting with version 6.1.0, rsyslog supports different scopes inside rsyslog.conf. Earlier versions had only a single, global scope, where each configuration command affected that global scope. This resulted in rather complex configurations. Also many users, even the rsyslog authors, were sometimes not sure what belonged together. So we started an effort to redo the configuration language. The initial effort, available in 6.1.0, is scoping for actions. Now, an action can be defined in its own scope and it will always get a fresh environment, not affected by any config settings outside of that action definition. Similarly, config statements issues within the scope do not affect the global scope. This is the recommended ways of defining actions.
However, the previous mode is still supported and any valid pre-v6 config is a valid v6 config as well. For those interested in more strict scoping, the "$StrictScoping on" directive can be used to force the use of scopes inside rsyslog.conf. If given, actions and action directives can not be specified outside of action scopes.
Nestings of scope is not permitted. Each $Begin must be matched by a $End. This is currently not enforced in all cases (end of file), but is considered a syntax error which later versions of rsyslog will most probably detect.
Note that scoping is in its infancy. Expect changes, and most importantly enhancements. Currently, scoping is only supported for actions. As a next step, scoping for inputs is planned. Feedback on the scoping feature is appreciated.
Scoping Config Statements
- $StrictScoping [on/off] - enable strict scoping as described above.
- $Begin <object> - Begin definitions for the specified object. Inside the scope only object-specific directives can be given. Currently, only the object type "action" is supported (note that the object name is case-insensitive).
- $End <object> - End definitions for the object. Global scope is restored.
This documentation is part of the rsyslog
project.
Copyright © 2010 by Rainer Gerhards and
Adiscon.
Released under the GNU GPL version 3 or higher.

