﻿<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.Appender Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="log4net.Appender namespace" /><meta name="Microsoft.Help.F1" content="log4net.Appender" /><meta name="Microsoft.Help.Id" content="N:log4net.Appender" /><meta name="Description" content=" " /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="log4net.Appender" /><meta name="file" content="N_log4net_Appender" /><meta name="guid" content="N_log4net_Appender" /><link type="text/css" rel="stylesheet" href="../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"> </script></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.Appender 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" /><img src="../icons/CodeExample.png" alt="Code example" title="Code example" /></td><td><a href="T_log4net_Appender_AdoNetAppender.htm">AdoNetAppender</a></td><td><div class="summary">
            Appender that logs to a database.
            </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_Appender_AdoNetAppenderParameter.htm">AdoNetAppenderParameter</a></td><td><div class="summary">
            Parameter type used by the <a href="T_log4net_Appender_AdoNetAppender.htm">AdoNetAppender</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_Appender_AnsiColorTerminalAppender.htm">AnsiColorTerminalAppender</a></td><td><div class="summary">
            Appends logging events to the terminal using ANSI color escape sequences.
            </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_Appender_AnsiColorTerminalAppender_LevelColors.htm">AnsiColorTerminalAppender<span id="LSTE2E4651C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LevelColors</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the color it should be displayed as.
            </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_Appender_AppenderCollection.htm">AppenderCollection</a></td><td><div class="summary">
            A strongly-typed collection of <a href="T_log4net_Appender_IAppender.htm">IAppender</a> objects.
            </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_Appender_AppenderSkeleton.htm">AppenderSkeleton</a></td><td><div class="summary">
            Abstract base class implementation of <a href="T_log4net_Appender_IAppender.htm">IAppender</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_Appender_AspNetTraceAppender.htm">AspNetTraceAppender</a></td><td><div class="summary"><p>
            Appends log events to the ASP.NET <a href="http://msdn2.microsoft.com/en-us/library/427zc4k9" target="_blank">TraceContext</a> system.
            </p></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_Appender_BufferingAppenderSkeleton.htm">BufferingAppenderSkeleton</a></td><td><div class="summary">
            Abstract base class implementation of <a href="T_log4net_Appender_IAppender.htm">IAppender</a> that 
            buffers events in a fixed size buffer.
            </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_Appender_BufferingForwardingAppender.htm">BufferingForwardingAppender</a></td><td><div class="summary">
            Buffers events and then forwards them to attached appenders.
            </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_Appender_ColoredConsoleAppender.htm">ColoredConsoleAppender</a></td><td><div class="summary">
            Appends logging events to the console.
            </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_Appender_ColoredConsoleAppender_LevelColors.htm">ColoredConsoleAppender<span id="LSTE2E4651C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LevelColors</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the color it should be displayed as.
            </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_Appender_ConsoleAppender.htm">ConsoleAppender</a></td><td><div class="summary">
            Appends logging events to the console.
            </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_Appender_DebugAppender.htm">DebugAppender</a></td><td><div class="summary">
            Appends log events to the <a href="http://msdn2.microsoft.com/en-us/library/6x31ezs1" target="_blank">Debug</a> system.
            </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_Appender_EventLogAppender.htm">EventLogAppender</a></td><td><div class="summary">
            Writes events to the system event log.
            </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_Appender_EventLogAppender_Level2EventLogEntryType.htm">EventLogAppender<span id="LSTE2E4651C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Level2EventLogEntryType</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the color it should be displayed as.
            </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_Appender_FileAppender.htm">FileAppender</a></td><td><div class="summary">
            Appends logging events to a file.
            </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_Appender_FileAppender_ExclusiveLock.htm">FileAppender<span id="LSTE2E4651C_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ExclusiveLock</a></td><td><div class="summary">
            Hold an exclusive lock on the output file
            </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_Appender_FileAppender_InterProcessLock.htm">FileAppender<span id="LSTE2E4651C_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>InterProcessLock</a></td><td><div class="summary">
            Provides cross-process file locking.
            </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_Appender_FileAppender_LockingModelBase.htm">FileAppender<span id="LSTE2E4651C_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LockingModelBase</a></td><td><div class="summary">
            Locking model base class
            </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_Appender_FileAppender_MinimalLock.htm">FileAppender<span id="LSTE2E4651C_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>MinimalLock</a></td><td><div class="summary">
            Acquires the file lock for each write
            </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_Appender_ForwardingAppender.htm">ForwardingAppender</a></td><td><div class="summary">
            This appender forwards logging events to attached appenders.
            </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_Appender_LocalSyslogAppender.htm">LocalSyslogAppender</a></td><td><div class="summary">
            Logs events to a local syslog service.
            </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_Appender_LocalSyslogAppender_LevelSeverity.htm">LocalSyslogAppender<span id="LSTE2E4651C_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LevelSeverity</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the syslog severity that is should be logged at.
            </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_Appender_ManagedColoredConsoleAppender.htm">ManagedColoredConsoleAppender</a></td><td><div class="summary">
            Appends colorful logging events to the console, using the .NET 2
            built-in capabilities.
            </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_Appender_ManagedColoredConsoleAppender_LevelColors.htm">ManagedColoredConsoleAppender<span id="LSTE2E4651C_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LevelColors</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the color it should be displayed as.
            </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_Appender_MemoryAppender.htm">MemoryAppender</a></td><td><div class="summary">
            Stores logging events in an array.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /><img src="../icons/CodeExample.png" alt="Code example" title="Code example" /></td><td><a href="T_log4net_Appender_NetSendAppender.htm">NetSendAppender</a></td><td><div class="summary">
            Logs entries by sending network messages using the 
            <a href="M_log4net_Appender_NetSendAppender_NetMessageBufferSend.htm">NetMessageBufferSend(String, String, String, String, Int32)</a> native function.
            </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_Appender_OutputDebugStringAppender.htm">OutputDebugStringAppender</a></td><td><div class="summary">
            Appends log events to the OutputDebugString system.
            </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_Appender_RemoteSyslogAppender.htm">RemoteSyslogAppender</a></td><td><div class="summary">
            Logs events to a remote syslog daemon.
            </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_Appender_RemoteSyslogAppender_LevelSeverity.htm">RemoteSyslogAppender<span id="LSTE2E4651C_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>LevelSeverity</a></td><td><div class="summary">
            A class to act as a mapping between the level that a logging call is made at and
            the syslog severity that is should be logged at.
            </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_Appender_RemotingAppender.htm">RemotingAppender</a></td><td><div class="summary">
            Delivers logging events to a remote logging sink. 
            </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_Appender_RollingFileAppender.htm">RollingFileAppender</a></td><td><div class="summary">
            Appender that rolls log files based on size or date or both.
            </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_Appender_SmtpAppender.htm">SmtpAppender</a></td><td><div class="summary">
            Send an e-mail when a specific logging event occurs, typically on errors 
            or fatal errors.
            </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_Appender_SmtpPickupDirAppender.htm">SmtpPickupDirAppender</a></td><td><div class="summary">
            Send an email when a specific logging event occurs, typically on errors 
            or fatal errors. Rather than sending via smtp it writes a file into the
            directory specified by <a href="P_log4net_Appender_SmtpPickupDirAppender_PickupDir.htm">PickupDir</a>. This allows services such
            as the IIS SMTP agent to manage sending the messages.
            </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_Appender_TelnetAppender.htm">TelnetAppender</a></td><td><div class="summary">
            Appender that allows clients to connect via Telnet to receive log messages
            </div></td></tr><tr data="class; public"><td><img src="../icons/protclass.gif" alt="Protected class" title="Protected class" /></td><td><a href="T_log4net_Appender_TelnetAppender_SocketHandler.htm">TelnetAppender<span id="LSTE2E4651C_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SocketHandler</a></td><td><div class="summary">
            Helper class to manage connected clients
            </div></td></tr><tr data="class; public"><td><img src="../icons/protclass.gif" alt="Protected class" title="Protected class" /></td><td><a href="T_log4net_Appender_TelnetAppender_SocketHandler_SocketClient.htm">TelnetAppender<span id="LSTE2E4651C_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SocketHandler<span id="LSTE2E4651C_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SocketClient</a></td><td><div class="summary">
            Class that represents a client connected to this handler
            </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_Appender_TextWriterAppender.htm">TextWriterAppender</a></td><td><div class="summary">
            Sends logging events to a <a href="http://msdn2.microsoft.com/en-us/library/ywxh2328" target="_blank">TextWriter</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_Appender_TraceAppender.htm">TraceAppender</a></td><td><div class="summary">
            Appends log events to the <a href="http://msdn2.microsoft.com/en-us/library/36hhw2t6" target="_blank">Trace</a> system.
            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /><img src="../icons/CodeExample.png" alt="Code example" title="Code example" /></td><td><a href="T_log4net_Appender_UdpAppender.htm">UdpAppender</a></td><td><div class="summary">
             Sends logging events as connectionless UDP datagrams to a remote host or a 
             multicast group using an <a href="http://msdn2.microsoft.com/en-us/library/9wkb9k12" target="_blank">UdpClient</a>.
             </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_Appender_IAppender.htm">IAppender</a></td><td><div class="summary">
            Implement this interface for your own strategies for printing log statements.
            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_log4net_Appender_IBulkAppender.htm">IBulkAppender</a></td><td><div class="summary">
            Interface for appenders that support bulk logging.
            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_log4net_Appender_IFlushable.htm">IFlushable</a></td><td><div class="summary">
            Interface that can be implemented by Appenders that buffer logging data and expose a <a href="M_log4net_Appender_IFlushable_Flush.htm">Flush(Int32)</a> method.
            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_log4net_Appender_RemotingAppender_IRemoteLoggingSink.htm">RemotingAppender<span id="LSTE2E4651C_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IRemoteLoggingSink</a></td><td><div class="summary">
            Interface used to deliver <a href="T_log4net_Core_LoggingEvent.htm">LoggingEvent</a> objects to a remote sink.
            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_log4net_Appender_RollingFileAppender_IDateTime.htm">RollingFileAppender<span id="LSTE2E4651C_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_14?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IDateTime</a></td><td><div class="summary">
            This interface is used to supply Date/Time information to the <a href="T_log4net_Appender_RollingFileAppender.htm">RollingFileAppender</a>.
            </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_Appender_AnsiColorTerminalAppender_AnsiAttributes.htm">AnsiColorTerminalAppender<span id="LSTE2E4651C_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AnsiAttributes</a></td><td><div class="summary">
            The enum of possible display attributes
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_AnsiColorTerminalAppender_AnsiColor.htm">AnsiColorTerminalAppender<span id="LSTE2E4651C_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_16?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AnsiColor</a></td><td><div class="summary">
            The enum of possible foreground or background color values for 
            use with the color mapping method
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_ColoredConsoleAppender_Colors.htm">ColoredConsoleAppender<span id="LSTE2E4651C_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_17?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Colors</a></td><td><div class="summary">
            The enum of possible color values for use with the color mapping method
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_LocalSyslogAppender_SyslogFacility.htm">LocalSyslogAppender<span id="LSTE2E4651C_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_18?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SyslogFacility</a></td><td><div class="summary">
            syslog facilities
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_LocalSyslogAppender_SyslogSeverity.htm">LocalSyslogAppender<span id="LSTE2E4651C_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_19?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SyslogSeverity</a></td><td><div class="summary">
            syslog severities
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_RemoteSyslogAppender_SyslogFacility.htm">RemoteSyslogAppender<span id="LSTE2E4651C_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_20?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SyslogFacility</a></td><td><div class="summary">
            syslog facilities
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_RemoteSyslogAppender_SyslogSeverity.htm">RemoteSyslogAppender<span id="LSTE2E4651C_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_21?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SyslogSeverity</a></td><td><div class="summary">
            syslog severities
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_RollingFileAppender_RollingMode.htm">RollingFileAppender<span id="LSTE2E4651C_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_22?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>RollingMode</a></td><td><div class="summary">
            Style of rolling to use
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/protenumeration.gif" alt="Protected enumeration" title="Protected enumeration" /></td><td><a href="T_log4net_Appender_RollingFileAppender_RollPoint.htm">RollingFileAppender<span id="LSTE2E4651C_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_23?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>RollPoint</a></td><td><div class="summary">
            The code assumes that the following 'time' constants are in a increasing sequence.
            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_log4net_Appender_SmtpAppender_SmtpAuthentication.htm">SmtpAppender<span id="LSTE2E4651C_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2E4651C_24?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SmtpAuthentication</a></td><td><div class="summary">
            Values for the <a href="P_log4net_Appender_SmtpAppender_Authentication.htm">Authentication</a> property.
            </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>