﻿<html xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp"><head><link rel="SHORTCUT ICON" href="./../icons/favicon.ico" /><style type="text/css">.OH_CodeSnippetContainerTabLeftActive, .OH_CodeSnippetContainerTabLeft,.OH_CodeSnippetContainerTabLeftDisabled { backgroundImageName: tabLeftBG.gif; }.OH_CodeSnippetContainerTabRightActive, .OH_CodeSnippetContainerTabRight,.OH_CodeSnippetContainerTabRightDisabled { backgroundImageName: tabRightBG.gif; }.OH_footer { backgroundImageName: footer_slice.gif; background-position: top; background-repeat: repeat-x; }</style><link rel="stylesheet" type="text/css" href="./../styles/branding.css" /><link rel="stylesheet" type="text/css" href="./../styles/branding-en-US.css" /><style type="text/css">
			body
			{
			border-left:5px solid #e6e6e6;
			overflow-x:scroll;
			overflow-y:scroll;
			}
		</style><script src="./../scripts/branding.js" type="text/javascript"><!----></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>PatternString Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PatternString class" /><meta name="System.Keywords" content="log4net.Util.PatternString class" /><meta name="System.Keywords" content="PatternString class, about PatternString class" /><meta name="Microsoft.Help.F1" content="log4net.Util.PatternString" /><meta name="Microsoft.Help.Id" content="T:log4net.Util.PatternString" /><meta name="Description" content="This class implements a patterned string." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="'true'" /><meta name="container" content="log4net.Util" /><meta name="file" content="T_log4net_Util_PatternString" /><meta name="guid" content="T_log4net_Util_PatternString" /><link type="text/css" rel="stylesheet" href="ms-help://Hx/HxRuntime/HxLink.css" /><meta name="SelfBranded" content="true" /></head><body onload="onLoad()" class="primary-mtps-offline-document"><div class="OH_outerDiv"><div class="OH_outerContent"><table class="TitleTable"><tr><td class="OH_tdTitleColumn">PatternString Class</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">
            This class implements a patterned string.
            </div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Inheritance Hierarchy</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="ID0EBENAAAAA"> </span><script type="text/javascript">
					addToLanSpecTextIdSet("ID0EBENAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
				</script>Object</a><br />  <span class="selflink">log4net.Util<span id="ID0EBBNAAAAA"> </span><script type="text/javascript">
					addToLanSpecTextIdSet("ID0EBBNAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=.");
				</script>PatternString</span><br /><p></p><b>Namespace:</b> <a href="N_log4net_Util.htm" target="">log4net.Util</a><br /><b>Assembly:</b> <span sdata="assembly">log4net</span> (in log4net.dll) Version: 1.2.15.0 (1.2.15.0)<div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Syntax</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div id="snippetGroup_Syntax" class="code"><div id="ID0ECADAAAAA" class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs" id="ID0ECADAAAAA_tabs"><div class="OH_CodeSnippetContainerTabLeftActive" id="ID0ECADAAAAA_tabimgleft"></div><div id="ID0ECADAAAAA_tab1" class="OH_CodeSnippetContainerTabActive" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECADAAAAA','C#','1','4');return false;">C#</a></div><div id="ID0ECADAAAAA_tab2" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECADAAAAA','Visual Basic','2','4');return false;">VB</a></div><div id="ID0ECADAAAAA_tab3" class="OH_CodeSnippetContainerTab" EnableCopyCode="true"><a href="#" onclick="javascript:ChangeTab('ID0ECADAAAAA','Visual C++','3','4');return false;">C++</a></div><div id="ID0ECADAAAAA_tab4" class="OH_CodeSnippetContainerTabDisabledNotFirst" EnableCopyCode="true" disabled="true"><a>F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0ECADAAAAA_tabimgright"></div></div><div id="ID0ECADAAAAA_codecollection" class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0ECADAAAAA_ViewColorized" href="#" onclick="javascript:ExchangeTitleContent('ID0ECADAAAAA','4')" title="View Colorized" style="display: none">View Colorized</a><a id="ID0ECADAAAAA_copycode" href="#" onclick="javascript:CopyToClipboard('ID0ECADAAAAA','4')" title="Copy to Clipboard">Copy to Clipboard</a><a id="ID0ECADAAAAA_PrintText" class="OH_PrintText" href="#" onclick="javascript:Print('ID0ECADAAAAA','4')" title="Print">Print</a></div></div><div id="ID0ECADAAAAA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">PatternString</span> : <span class="identifier">IOptionHandler</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public class PatternString : IOptionHandler</pre></div><div id="ID0ECADAAAAA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">PatternString</span> 
	<span class="keyword">Implements</span> <span class="identifier">IOptionHandler</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre>Public Class PatternString 
	Implements IOptionHandler</pre></div><div id="ID0ECADAAAAA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">PatternString</span> : <span class="identifier">IOptionHandler</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public ref class PatternString : IOptionHandler</pre></div><div id="ID0ECADAAAAA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div><div id="ID0ECADAAAAA_code_Plain_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre /></div></div></div><script>addSpecificTextLanguageTagSet('ID0ECADAAAAA');</script></div><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">Remarks</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><p>
            This string has embedded patterns that are resolved and expanded
            when the string is formatted.
            </p><p>
            This class functions similarly to the <a href="T_log4net_Layout_PatternLayout.htm" target="">PatternLayout</a>
            in that it accepts a pattern and renders it to a string. Unlike the 
            <a href="T_log4net_Layout_PatternLayout.htm" target="">PatternLayout</a> however the <span class="code">PatternString</span>
            does not render the properties of a specific <a href="T_log4net_Core_LoggingEvent.htm" target="">LoggingEvent</a> but
            of the process in general.
            </p><p>
            The recognized conversion pattern names are:
            </p><div class="tableSection"><table><tr><th>Conversion Pattern Name</th><th>Effect</th></tr><tr><td>appdomain</td><td>
                        Used to output the friendly name of the current AppDomain.
                        </td></tr><tr><td>date</td><td>
            			Used to output the current date and time in the local time zone. 
            			To output the date in universal time use the <span class="code">%utcdate</span> pattern.
            			The date conversion 
            			specifier may be followed by a <i>date format specifier</i> enclosed 
            			between braces. For example, <b>%date{HH:mm:ss,fff}</b> or
            			<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
            			given then ISO8601 format is
            			assumed (<a href="T_log4net_DateFormatter_Iso8601DateFormatter.htm" target="">Iso8601DateFormatter</a>).
            			<p>
            			The date format specifier admits the same syntax as the
            			time pattern string of the <span class="nolink">ToString(string)</span>.
            			</p><p>
            			For better results it is recommended to use the log4net date
            			formatters. These can be specified using one of the strings
            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
            			<a href="T_log4net_DateFormatter_AbsoluteTimeDateFormatter.htm" target="">AbsoluteTimeDateFormatter</a>, 
            			<a href="T_log4net_DateFormatter_DateTimeDateFormatter.htm" target="">DateTimeDateFormatter</a> and respectively 
            			<a href="T_log4net_DateFormatter_Iso8601DateFormatter.htm" target="">Iso8601DateFormatter</a>. For example, 
            			<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
            			</p><p>
            			These dedicated date formatters perform significantly
            			better than <span class="nolink">ToString(string)</span>.
            			</p></td></tr><tr><td>env</td><td>
            			Used to output the a specific environment variable. The key to 
            			lookup must be specified within braces and directly following the
            			pattern specifier, e.g. <b>%env{COMPUTERNAME}</b> would include the value
            			of the <span class="code">COMPUTERNAME</span> environment variable.
                        <p>
                        The <span class="code">env</span> pattern is not supported on the .NET Compact Framework.
                        </p></td></tr><tr><td>identity</td><td>
            			Used to output the user name for the currently active user
            			(Principal.Identity.Name).
            			</td></tr><tr><td>newline</td><td>
            			Outputs the platform dependent line separator character or
            			characters.
            			<p>
            			This conversion pattern name offers the same performance as using 
            			non-portable line separator strings such as	"\n", or "\r\n". 
            			Thus, it is the preferred way of specifying a line separator.
            			</p></td></tr><tr><td>processid</td><td>
            			Used to output the system process ID for the current process.
                        </td></tr><tr><td>property</td><td>
            			Used to output a specific context property. The key to 
            			lookup must be specified within braces and directly following the
            			pattern specifier, e.g. <b>%property{user}</b> would include the value
            			from the property that is keyed by the string 'user'. Each property value
            			that is to be included in the log must be specified separately.
            			Properties are stored in logging contexts. By default 
            			the <span class="code">log4net:HostName</span> property is set to the name of machine on 
            			which the event was originally logged.
            			<p>
            			If no key is specified, e.g. <b>%property</b> then all the keys and their
            			values are printed in a comma separated list.
            			</p><p>
            			The properties of an event are combined from a number of different
            			contexts. These are listed below in the order in which they are searched.
            			</p><dl class="authored"><dt>the thread properties</dt><dd>
            					The <a href="P_log4net_ThreadContext_Properties.htm" target="">Properties</a> that are set on the current
            					thread. These properties are shared by all events logged on this thread.
            					</dd><dt>the global properties</dt><dd>
            					The <a href="P_log4net_GlobalContext_Properties.htm" target="">Properties</a> that are set globally. These 
            					properties are shared by all the threads in the AppDomain.
            					</dd></dl></td></tr><tr><td>random</td><td>
                        Used to output a random string of characters. The string is made up of
                        uppercase letters and numbers. By default the string is 4 characters long.
                        The length of the string can be specified within braces directly following the
            			pattern specifier, e.g. <b>%random{8}</b> would output an 8 character string.
                        </td></tr><tr><td>username</td><td>
            			Used to output the WindowsIdentity for the currently
            			active user.
            			</td></tr><tr><td>utcdate</td><td>
            			Used to output the date of the logging event in universal time. 
            			The date conversion 
            			specifier may be followed by a <i>date format specifier</i> enclosed 
            			between braces. For example, <b>%utcdate{HH:mm:ss,fff}</b> or
            			<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>.  If no date format specifier is 
            			given then ISO8601 format is
            			assumed (<a href="T_log4net_DateFormatter_Iso8601DateFormatter.htm" target="">Iso8601DateFormatter</a>).
            			<p>
            			The date format specifier admits the same syntax as the
            			time pattern string of the <span class="nolink">ToString(string)</span>.
            			</p><p>
            			For better results it is recommended to use the log4net date
            			formatters. These can be specified using one of the strings
            			"ABSOLUTE", "DATE" and "ISO8601" for specifying 
            			<a href="T_log4net_DateFormatter_AbsoluteTimeDateFormatter.htm" target="">AbsoluteTimeDateFormatter</a>, 
            			<a href="T_log4net_DateFormatter_DateTimeDateFormatter.htm" target="">DateTimeDateFormatter</a> and respectively 
            			<a href="T_log4net_DateFormatter_Iso8601DateFormatter.htm" target="">Iso8601DateFormatter</a>. For example, 
            			<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE}</b>.
            			</p><p>
            			These dedicated date formatters perform significantly
            			better than <span class="nolink">ToString(string)</span>.
            			</p></td></tr><tr><td>%</td><td>
            			The sequence %% outputs a single percent sign.
            			</td></tr></table></div><p>
            Additional pattern converters may be registered with a specific <span class="selflink">PatternString</span>
            instance using <span class="nolink">[M:AddConverter(ConverterInfo)]</span> or
            <span class="nolink">[M:AddConverter(string, Type)]</span>.
            </p><p>
            See the <a href="T_log4net_Layout_PatternLayout.htm" target="">PatternLayout</a> for details on the 
            <i>format modifiers</i> supported by the patterns.
            </p><a name="seeAlsoSection"><!----></a><div class="OH_CollapsibleAreaRegion"><div class="OH_regiontitle">See Also</div><div class="OH_CollapsibleArea_HrDiv"><hr class="OH_CollapsibleArea_Hr" /></div></div><div class="OH_clear"></div><div class="seeAlsoStyle"><a href="AllMembers_T_log4net_Util_PatternString.htm" target="">PatternString Members</a></div><div class="seeAlsoStyle"><a href="N_log4net_Util.htm" target="">log4net.Util Namespace</a></div></div></div></div></div><div id="OH_footer" class="OH_footer"><p>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</p><p><a href="http://logging.apache.org/log4net/" target="_blank"><img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /> 
						Copyright 2004-2015 The Apache Software Foundation (http://logging.apache.org/log4net/)</a></p><div class="OH_feedbacklink"><a href="mailto:http://logging.apache.org/log4net/mail-lists.html?subject=Apache+log4net%e2%84%a2+SDK+Documentation+PatternString+Class+100+EN-US&amp;body=Your%20feedback%20is%20used%20to%20improve%20the%20documentation%20and%20the%20product.%20Your%20e-mail%20address%20will%20not%20be%20used%20for%20any%20other%20purpose%20and%20is%20disposed%20of%20after%20the%20issue%20you%20report%20is%20resolved.%20While%20working%20to%20resolve%20the%20issue%20that%20you%20report%2c%20you%20may%20be%20contacted%20via%20e-mail%20to%20get%20further%20details%20or%20clarification%20on%20the%20feedback%20you%20sent.%20After%20the%20issue%20you%20report%20has%20been%20addressed%2c%20you%20may%20receive%20an%20e-mail%20to%20let%20you%20know%20that%20your%20feedback%20has%20been%20addressed.">Send Feedback</a> on this topic to http://logging.apache.org/log4net/mail-lists.html.</div></div></body></html>