Tag Groups¶
Introduction to Tag Groups¶
Tag groups were created to simplify managing tags and to allow for hierarchical tags. A list of tags are grouped under a single tag. Take a look at the configuration below as an example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="nulog" type="NuLog.Configuration.ConfigurationSectionHandler, NuLog" />
</configSections>
<nulog>
<!-- ... -->
<tagGroups>
<group
baseTag="base_tag"
aliases="one_tag,two_tag,red_tag,blue_tag" />
</tagGroups>
<!-- ... -->
</nulog>
</configuration>
|
What this means:
- baseTag - The base tag that the alias tags equate to. If this tag is listed in a rule’s
include
orexclude
attributes, all of the tags listed as aliases would then qualify/satisfy the include or exclude requirement.- aliases - The list of tags, comma delimited, which are considered the same as the named base tag.
An Impractical Example: Fruit¶
Perhaps you wanted to simply be able to say fruit
in a rule to say that you wanted to send all log events containing fruit to be dispatched to a list of targets. You could create a tag group for the base tag fruit
, and list under it apple
, pear
, tomato
, and on.
Now, I know you aren’t likely to be using fruit as tags, but this could be used to group all user actions together, for example: useractions
could have the aliases login
, signout
and resetpassword
. This becomes useful once you have more advanced tag routing, where you have multiple rules that would leverage the useractions
base tag.
A Practical Example: Traditional Log Levels¶
Tag groups can be used to emulate the traditional behavior of log levels. This is done by equating all of the lower levels, to a given level:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="nulog" type="NuLog.Configuration.ConfigurationSectionHandler, NuLog" />
</configSections>
<nulog>
<!-- ... -->
<tagGroups>
<group baseTag="trace" aliases="fatal,error,warn,info,debug" />
<group baseTag="debug" aliases="fatal,error,warn,info" />
<group baseTag="info" aliases="fatal,error,warn" />
<group baseTag="warn" aliases="fatal,error" />
<group baseTag="error" aliases="fatal" />
</tagGroups>
<!-- ... -->
</nulog>
</configuration>
|
With these tag groups in place, we can then set a “level” to our rules:
1 2 3 | <rule
include="warn"
targets="email" />
|
If we look at our warn
tag group, it tells us that any log events with any of warn
, error
or fatal
, will cause the rule to match, and be sent to the target named email.