﻿<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>LogImpl.ErrorFormat Method (String, Object, Object)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Object,System.Object)" /><meta name="Description" content="Logs a formatted message string with the ERROR level." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Core" /><meta name="file" content="M_log4net_Core_LogImpl_ErrorFormat_2" /><meta name="guid" content="M_log4net_Core_LogImpl_ErrorFormat_2" /></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">LogImpl<span id="LST1A9F2B19_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1A9F2B19_0?cpp=::|nu=.");</script>ErrorFormat Method (String, Object, Object)</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">
            Logs a formatted message string with the <span class="code">ERROR</span> level.
            </div><p> </p><strong>Namespace:</strong> <a href="N_log4net_Core.htm">log4net.Core</a><br /><strong>Assembly:</strong> log4net (in log4net.dll) Version: 2.0.8.0-.NET 4.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 class="OH_CodeSnippetContainer"><div class="OH_CodeSnippetContainerTabs"><div class="OH_CodeSnippetContainerTabLeft" id="ID0EDCA_tabimgleft"> </div><div id="ID0EDCA_tab1" class="OH_CodeSnippetContainerTabFirst"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="OH_CodeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div><div class="OH_CodeSnippetContainerTabRight" id="ID0EDCA_tabimgright"> </div></div><div class="OH_CodeSnippetContainerCodeCollection"><div class="OH_CodeSnippetToolBar"><div class="OH_CodeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="OH_CodeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">ErrorFormat</span>(
	<span class="identifier">string</span> <span class="parameter">format</span>,
	<span class="identifier">Object</span> <span class="parameter">arg0</span>,
	<span class="identifier">Object</span> <span class="parameter">arg1</span>
)</pre></div><div id="ID0EDCA_code_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overridable</span> <span class="keyword">Sub</span> <span class="identifier">ErrorFormat</span> ( 
	<span class="parameter">format</span> <span class="keyword">As</span> <span class="identifier">String</span>,
	<span class="parameter">arg0</span> <span class="keyword">As</span> <span class="identifier">Object</span>,
	<span class="parameter">arg1</span> <span class="keyword">As</span> <span class="identifier">Object</span>
)</pre></div><div id="ID0EDCA_code_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">ErrorFormat</span>(
	<span class="identifier">String</span>^ <span class="parameter">format</span>, 
	<span class="identifier">Object</span>^ <span class="parameter">arg0</span>, 
	<span class="identifier">Object</span>^ <span class="parameter">arg1</span>
)</pre></div><div id="ID0EDCA_code_Div4" class="OH_CodeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ErrorFormat</span> : 
        <span class="parameter">format</span> : <span class="identifier">string</span> * 
        <span class="parameter">arg0</span> : <span class="identifier">Object</span> * 
        <span class="parameter">arg1</span> : <span class="identifier">Object</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
<span class="keyword">override</span> <span class="identifier">ErrorFormat</span> : 
        <span class="parameter">format</span> : <span class="identifier">string</span> * 
        <span class="parameter">arg0</span> : <span class="identifier">Object</span> * 
        <span class="parameter">arg1</span> : <span class="identifier">Object</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">format</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST1A9F2B19_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1A9F2B19_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />A String containing zero or more format items</dd><dt><span class="parameter">arg0</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST1A9F2B19_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1A9F2B19_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />An Object to format</dd><dt><span class="parameter">arg1</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST1A9F2B19_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1A9F2B19_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />An Object to format</dd></dl><h4 class="subHeading">Implements</h4><a href="M_log4net_ILog_ErrorFormat_2.htm">ILog<span id="LST1A9F2B19_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1A9F2B19_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ErrorFormat(String, Object, Object)</a><br /><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>
            The message is formatted using the <span class="nolink">[M:String.Format(IFormatProvider, string, object[])]</span> method. See
            <span class="code">String.Format</span> for details of the syntax of the format string and the behavior
            of the formatting.
            </p><p>
            The string is formatted using the <a href="http://msdn2.microsoft.com/en-us/library/bdcxfx72" target="_blank">InvariantCulture</a>
            format provider. To specify a localized provider use the
            <span class="nolink">[M:ErrorFormat(IFormatProvider,string,object[])]</span> method.
            </p><p>
            This method does not take an <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> object to include in the
            log event. To pass an <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> use one of the <span class="nolink">[M:Error(object)]</span>
            methods instead.
            </p><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_Core_LogImpl.htm">LogImpl Class</a></div><div class="seeAlsoStyle"><a href="Overload_log4net_Core_LogImpl_ErrorFormat.htm">ErrorFormat Overload</a></div><div class="seeAlsoStyle"><a href="N_log4net_Core.htm">log4net.Core 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-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>