﻿<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { }.OH_footer { }</style><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>log4net.Filter Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="log4net.Filter namespace" /><meta name="Microsoft.Help.F1" content="log4net.Filter" /><meta name="Microsoft.Help.Id" content="N:log4net.Filter" /><meta name="Description" content=" " /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Filter" /><meta name="file" content="N_log4net_Filter" /><meta name="guid" content="N_log4net_Filter" /></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">log4net.Filter Namespace</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><div class="summary"> </div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Classes</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_DenyAllFilter.htm">DenyAllFilter</a></td><td><div class="summary">
            This filter drops all <a href="T_log4net_Core_LoggingEvent.htm">LoggingEvent</a>. 
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_FilterSkeleton.htm">FilterSkeleton</a></td><td><div class="summary">
            Subclass this type to implement customized logging event filtering
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_LevelMatchFilter.htm">LevelMatchFilter</a></td><td><div class="summary">
            This is a very simple filter based on <a href="T_log4net_Core_Level.htm">Level</a> matching.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_LevelRangeFilter.htm">LevelRangeFilter</a></td><td><div class="summary">
            This is a simple filter based on <a href="T_log4net_Core_Level.htm">Level</a> matching.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_LoggerMatchFilter.htm">LoggerMatchFilter</a></td><td><div class="summary">
            Simple filter to match a string in the event's logger name.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_MdcFilter.htm">MdcFilter</a></td><td><div class="summary">
            Simple filter to match a keyed string in the <a href="T_log4net_MDC.htm">MDC</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_NdcFilter.htm">NdcFilter</a></td><td><div class="summary">
            Simple filter to match a string in the <a href="T_log4net_NDC.htm">NDC</a></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_PropertyFilter.htm">PropertyFilter</a></td><td><div class="summary">
            Simple filter to match a string an event property
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_log4net_Filter_StringMatchFilter.htm">StringMatchFilter</a></td><td><div class="summary">
            Simple filter to match a string in the rendered message
            </div></td></tr></table><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Interfaces</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Interface</th><th>Description</th></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_log4net_Filter_IFilter.htm">IFilter</a></td><td><div class="summary">
            Implement this interface to provide customized logging event filtering
            </div></td></tr></table><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Enumerations</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="typeList" class="members"><tr><th class="ps_iconColumn">
					 
				</th><th>Enumeration</th><th>Description</th></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Filter_FilterDecision.htm">FilterDecision</a></td><td><div class="summary">
            The return result from <a href="M_log4net_Filter_IFilter_Decide.htm">Decide(LoggingEvent)</a></div></td></tr></table></div></div></div></div><div id="OH_footer" class="OH_footer">Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.<p><a href="http://logging.apache.org/log4net/" target="_blank">Copyright 2004-2017 The Apache Software Foundation</a></p><div class="OH_feedbacklink">Send comments on this topic to
        <a id="HT_MailLink" href="mailto:http%3A%2F%2Flogging.apache.org%2Flog4net%2Fmail-lists.html?Subject=Apache log4net™ SDK Documentation">http://logging.apache.org/log4net/mail-lists.html</a></div><script type="text/javascript">
        var HT_mailLink = document.getElementById("HT_MailLink");
        var HT_mailLinkText = HT_mailLink.innerHTML;
        HT_mailLink.href += ": " + document.title + "\u0026body=" + encodeURIComponent("Your feedback is used to improve the documentation and the product. Your e-mail address will not be used for any other purpose and is disposed of after the issue you report is resolved. While working to resolve the issue that you report, you may be contacted via e-mail to get further details or clarification on the feedback you sent. After the issue you report has been addressed, you may receive an e-mail to let you know that your feedback has been addressed.");
        HT_mailLink.innerHTML = HT_mailLinkText;
        </script> </div></body></html>