Last updated: 2006-09-18

This website is based on NLog v1.0. Click here to view the documentation for other versions.

FilteringWrapper Target


A target wrapper that filters log entries based on a condition.

AssemblyClass.NET Framework.NET CFMono on WindowsMono on Unix
1.01.12.01.02.01.02.01.02.0
NLog.dllNLog.Targets.Wrappers.FilteringTargetWrapper

Parameters (blue fields are required):

NameTypeDescription
conditionstring  [c()]
Condition expression. Log events who meet this condition will be forwarded to the wrapped target.
namestring
The name of the target.
wrappedTargetTarget
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.
Webwww.nlog-project.org