<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>RemotingAppender Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RemotingAppender class" /><meta name="System.Keywords" content="log4net.Appender.RemotingAppender class" /><meta name="System.Keywords" content="RemotingAppender class, about RemotingAppender class" /><meta name="Microsoft.Help.F1" content="log4net.Appender.RemotingAppender" /><meta name="Microsoft.Help.Id" content="T:log4net.Appender.RemotingAppender" /><meta name="Description" content="Delivers logging events to a remote logging sink." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="'true'" /><meta name="container" content="log4net.Appender" /><meta name="file" content="T_log4net_Appender_RemotingAppender" /><meta name="guid" content="T_log4net_Appender_RemotingAppender" /><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">RemotingAppender 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"> | |
Delivers logging events to a remote logging sink. | |
</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="ID0EBKNAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBKNAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>Object</a><br /> <a href="T_log4net_Appender_AppenderSkeleton.htm" target="">log4net.Appender<span id="ID0EBHNAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBHNAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>AppenderSkeleton</a><br /> <a href="T_log4net_Appender_BufferingAppenderSkeleton.htm" target="">log4net.Appender<span id="ID0EBENAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBENAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>BufferingAppenderSkeleton</a><br /> <span class="selflink">log4net.Appender<span id="ID0EBBNAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBBNAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>RemotingAppender</span><br /><p></p><b>Namespace:</b> <a href="N_log4net_Appender.htm" target="">log4net.Appender</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">RemotingAppender</span> : <span class="identifier">BufferingAppenderSkeleton</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div1" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public class RemotingAppender : BufferingAppenderSkeleton</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">RemotingAppender</span> | |
<span class="keyword">Inherits</span> <span class="identifier">BufferingAppenderSkeleton</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div2" class="OH_CodeSnippetContainerCode" style="display: none"><pre>Public Class RemotingAppender | |
Inherits BufferingAppenderSkeleton</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">RemotingAppender</span> : <span class="keyword">public</span> <span class="identifier">BufferingAppenderSkeleton</span></pre></div><div id="ID0ECADAAAAA_code_Plain_Div3" class="OH_CodeSnippetContainerCode" style="display: none"><pre>public ref class RemotingAppender : public BufferingAppenderSkeleton</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 Appender is designed to deliver events to a remote sink. | |
That is any object that implements the <a href="T_log4net_Appender_RemotingAppender_IRemoteLoggingSink.htm" target="">RemotingAppender<span id="ID0EBDECAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBDECAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>IRemoteLoggingSink</a> | |
interface. It delivers the events using .NET remoting. The | |
object to deliver events to is specified by setting the | |
appenders <a href="P_log4net_Appender_RemotingAppender_Sink.htm" target="">Sink</a> property.</p><p> | |
The RemotingAppender buffers events before sending them. This allows it to | |
make more efficient use of the remoting infrastructure.</p><p> | |
Once the buffer is full the events are still not sent immediately. | |
They are scheduled to be sent using a pool thread. The effect is that | |
the send occurs asynchronously. This is very important for a | |
number of non obvious reasons. The remoting infrastructure will | |
flow thread local variables (stored in the <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/c9tkcy8b" target="_blank">CallContext</a>), | |
if they are marked as <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/39fsck47" target="_blank">ILogicalThreadAffinative</a>, across the | |
remoting boundary. If the server is not contactable then | |
the remoting infrastructure will clear the <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/39fsck47" target="_blank">ILogicalThreadAffinative</a> | |
objects from the <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/c9tkcy8b" target="_blank">CallContext</a>. To prevent a logging failure from | |
having side effects on the calling application the remoting call must be made | |
from a separate thread to the one used by the application. A <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/y5htx827" target="_blank">ThreadPool</a> | |
thread is used for this. If no <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/y5htx827" target="_blank">ThreadPool</a> thread is available then | |
the events will block in the thread pool manager until a thread is available.</p><p> | |
Because the events are sent asynchronously using pool threads it is possible to close | |
this appender before all the queued events have been sent. | |
When closing the appender attempts to wait until all the queued events have been sent, but | |
this will timeout after 30 seconds regardless.</p><p> | |
If this appender is being closed because the <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/k8xz23w3" target="_blank">ProcessExit</a> | |
event has fired it may not be possible to send all the queued events. During process | |
exit the runtime limits the time that a <img src="./../icons/online_icon.gif" class="OH_offlineIcon" alt="Online" title="Online" /><a href="http://msdn2.microsoft.com/en-us/library/k8xz23w3" target="_blank">ProcessExit</a> | |
event handler is allowed to run for. If the runtime terminates the threads before | |
the queued events have been sent then they will be lost. To ensure that all events | |
are sent the appender must be closed before the application exits. See | |
<a href="M_log4net_Core_LoggerManager_Shutdown.htm" target="">Shutdown<span id="ID0EABACAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EABACAAAAA?vb=|cpp=()|cs=()|fs=()|nu=()"); | |
</script></a> for details on how to shutdown | |
log4net programmatically.</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_Appender_RemotingAppender.htm" target="">RemotingAppender Members</a></div><div class="seeAlsoStyle"><a href="N_log4net_Appender.htm" target="">log4net.Appender Namespace</a></div><div class="seeAlsoStyle"><a href="T_log4net_Appender_RemotingAppender_IRemoteLoggingSink.htm" target="">log4net.Appender<span id="ID0EDAAAAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EDAAAAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>RemotingAppender<span id="ID0EBAAAAAAAA"> </span><script type="text/javascript"> | |
addToLanSpecTextIdSet("ID0EBAAAAAAAA?vb=.|cpp=::|cs=.|fs=.|nu=."); | |
</script>IRemoteLoggingSink</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+RemotingAppender+Class+100+EN-US&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> |