﻿<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>PropertyFilter Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PropertyFilter class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:log4net.Filter.PropertyFilter" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Filter" /><meta name="file" content="Fields_T_log4net_Filter_PropertyFilter" /><meta name="guid" content="Fields_T_log4net_Filter_PropertyFilter" /></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">PropertyFilter Fields</td><td class="OH_tdRunningTitleColumn">Apache log4net™ SDK Documentation</td></tr></table><div id="mainSection"><div id="mainBody"><span class="introStyle"></span><p>The <a href="T_log4net_Filter_PropertyFilter.htm">PropertyFilter</a> type exposes the following members.</p><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Fields</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><table id="memberList" class="members"><tr><th class="ps_iconColumn">
								 
							</th><th>Name</th><th>Description</th></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protfield.gif" alt="Protected field" title="Protected field" /></td><td><a href="F_log4net_Filter_StringMatchFilter_m_acceptOnMatch.htm">m_acceptOnMatch</a></td><td><div class="summary">
            Flag to indicate the behavior when we have a match
            </div> (Inherited from <a href="T_log4net_Filter_StringMatchFilter.htm">StringMatchFilter</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protfield.gif" alt="Protected field" title="Protected field" /></td><td><a href="F_log4net_Filter_StringMatchFilter_m_regexToMatch.htm">m_regexToMatch</a></td><td><div class="summary">
            A regex object to match (generated from m_stringRegexToMatch)
            </div> (Inherited from <a href="T_log4net_Filter_StringMatchFilter.htm">StringMatchFilter</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protfield.gif" alt="Protected field" title="Protected field" /></td><td><a href="F_log4net_Filter_StringMatchFilter_m_stringRegexToMatch.htm">m_stringRegexToMatch</a></td><td><div class="summary">
            A string regex to match
            </div> (Inherited from <a href="T_log4net_Filter_StringMatchFilter.htm">StringMatchFilter</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protfield.gif" alt="Protected field" title="Protected field" /></td><td><a href="F_log4net_Filter_StringMatchFilter_m_stringToMatch.htm">m_stringToMatch</a></td><td><div class="summary">
            The string to substring match against the message
            </div> (Inherited from <a href="T_log4net_Filter_StringMatchFilter.htm">StringMatchFilter</a>.)</td></tr></table><a href="#mainBody">Top</a><div class="OH_CollapsibleAreaRegion" id="seeAlsoSection"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"> </div><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_log4net_Filter_PropertyFilter.htm">PropertyFilter Class</a></div><div class="seeAlsoStyle"><a href="N_log4net_Filter.htm">log4net.Filter Namespace</a></div></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-2016 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>