FilteringWrapper Target A target wrapper that filters log entries based on a condition. | Assembly | Class | .NET Framework | .NET CF | Mono on Windows | Mono on Unix |
|---|
| 1.0 | 1.1 | 2.0 | 1.0 | 2.0 | 1.0 | 2.0 | 1.0 | 2.0 |
|---|
| NLog.dll | NLog.Targets.Wrappers.FilteringTargetWrapper |  |  |  |  |  |  |  |  |  |
Parameters (blue fields are required):| Name | Type | Description |
|---|
| condition | string
[c()] | | Condition expression. Log events who meet this condition will be forwarded to the wrapped target. |
| | name | string | | | wrappedTarget | Target | | The target that this target wraps. |
|
Example:This example causes the messages not contains the string '1' to be ignored. To set up the target in the configuration file, use the following syntax: <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="file" xsi:type="FilteringWrapper"
condition="contains('${message}','1')">
<target xsi:type="File" fileName="${basedir}/file.txt"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="file"/>
</rules>
</nlog>
The above examples assume just one target and a single rule. See below for a programmatic configuration that's equivalent to the above config file: using System;
using NLog;
using NLog.Targets;
using NLog.Targets.Wrappers;
using System.Diagnostics;
class Example
{
static void Main(string[] args)
{
FileTarget wrappedTarget = new FileTarget();
wrappedTarget.FileName = "${basedir}/file.txt";
FilteringTargetWrapper filteringTarget = new FilteringTargetWrapper();
filteringTarget.WrappedTarget = wrappedTarget;
filteringTarget.Condition = "contains('${message}','1')";
NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(filteringTarget, LogLevel.Debug);
Logger logger = LogManager.GetLogger("Example");
logger.Debug("log message 0");
logger.Debug("log message 1");
logger.Debug("log message 2");
logger.Debug("log message 11");
}
}
Back to the target list. |