Sie sind auf Seite 1von 627

<?xml version="1.0"?

>
<doc>
<assembly>
<name>log4net</name>
</assembly>
<members>
<member name="T:log4net.Appender.AdoNetAppender">
<summary>
Appender that logs to a database.
</summary>
<remarks>
<para>
<see cref="T:log4net.Appender.AdoNetAppender"/> appends logging even
ts to a table within a
database. The appender can be configured to specify the connection
string by setting the <see cref="P:log4net.Appender.AdoNetAppender.C
onnectionString"/> property.
The connection type (provider) can be specified by setting the <see
cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/>
property. For more information on database connection strings for
your specific database see <a href="http://www.connectionstrings.com
/">http://www.connectionstrings.com/</a>.
</para>
<para>
Records are written into the database either using a prepared
statement or a stored procedure. The <see cref="P:log4net.Appender.A
doNetAppender.CommandType"/> property
is set to <see cref="F:System.Data.CommandType.Text"/> (<c>System.Da
ta.CommandType.Text</c>) to specify a prepared statement
or to <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>Sy
stem.Data.CommandType.StoredProcedure</c>) to specify a stored
procedure.
</para>
<para>
The prepared statement text or the name of the stored procedure
must be set in the <see cref="P:log4net.Appender.AdoNetAppender.Comm
andText"/> property.
</para>
<para>
The prepared statement or stored procedure can take a number
of parameters. Parameters are added using the <see cref="M:log4net.A
ppender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)"/>
method. This adds a single <see cref="T:log4net.Appender.AdoNetAppen
derParameter"/> to the
ordered list of parameters. The <see cref="T:log4net.Appender.AdoNet
AppenderParameter"/>
type may be subclassed if required to provide database specific
functionality. The <see cref="T:log4net.Appender.AdoNetAppenderParam
eter"/> specifies
the parameter name, database type, size, and how the value should
be generated using a <see cref="T:log4net.Layout.ILayout"/>.
</para>
</remarks>
<example>
An example of a SQL Server table that could be logged to:
<code lang="SQL">
CREATE TABLE [dbo].[Log] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Date] [datetime] NOT NULL ,
[Thread] [varchar] (255) NOT NULL ,
[Level] [varchar] (20) NOT NULL ,
[Logger] [varchar] (255) NOT NULL ,
[Message] [varchar] (4000) NOT NULL
) ON [PRIMARY]
</code>
</example>
<example>
An example configuration to log to the above table:
<code lang="XML" escaped="true">
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.Ado
NetAppender">
<connectionType value="System.Data.SqlClient.SqlConnection, System
.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="data source=SQLSVR;initial catalog=test_l
og4net;integrated security=false;persist security info=True;User ID=sa;Password=
sa"/>
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logg
er],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'
MM'-'dd HH':'mm':'ss'.'fff}"/>
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout" value="%thread"/>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout" value="%level"/>
</parameter>
<parameter>
<parameterName value="@logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout" value="%logger"/>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout" value="%message"/>
</parameter>
</appender>
</code>
</example>
<author>Julian Biddle</author>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Lance Nehring</author>
</member>
<member name="T:log4net.Appender.BufferingAppenderSkeleton">
<summary>
Abstract base class implementation of <see cref="T:log4net.Appender.
IAppender"/> that
buffers events in a fixed size buffer.
</summary>
<remarks>
<para>
This base class should be used by appenders that need to buffer a
number of events before logging them. For example the <see cref="T:l
og4net.Appender.AdoNetAppender"/>
buffers events and then submits the entire contents of the buffer to

the underlying database in one go.
</para>
<para>
Subclasses should override the <see cref="M:SendBuffer(LoggingEvent[
])"/>
method to deliver the buffered events.
</para>
<para>The BufferingAppenderSkeleton maintains a fixed size cyclic
buffer of events. The size of the buffer is set using
the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSi
ze"/> property.
</para>
<para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is us
ed to inspect
each event as it arrives in the appender. If the <see cref="P:log4ne
t.Appender.BufferingAppenderSkeleton.Evaluator"/>
triggers, then the current buffer is sent immediately
(see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the even
t
is stored in the buffer. For example, an evaluator can be used to
deliver the events immediately when an ERROR event arrives.
</para>
<para>
The buffering appender can be configured in a <see cref="P:log4net.A
ppender.BufferingAppenderSkeleton.Lossy"/> mode.
By default the appender is NOT lossy. When the buffer is full all
the buffered events are sent with <see cref="M:SendBuffer(LoggingEve
nt[])"/>.
If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy
"/> property is set to <c>true</c> then the
buffer will not be sent when it is full, and new events arriving
in the appender will overwrite the oldest event in the buffer.
In lossy mode the buffer will only be sent when the <see cref="P:log
4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
triggers. This can be useful behavior when you need to know about
ERROR events but not about events with a lower level, configure an
evaluator that will trigger when an ERROR event arrives, the whole
buffer will be sent which gives a history of events leading up to
the ERROR event.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Appender.AppenderSkeleton">
<summary>
Abstract base class implementation of <see cref="T:log4net.Appender.
IAppender"/>.
</summary>
<remarks>
<para>
This class provides the code for common functionality, such
as support for threshold filtering and support for general filters.
</para>
<para>
Appenders can also implement the <see cref="T:log4net.Core.IOptionHa
ndler"/> interface. Therefore
they would require that the <see cref="M:IOptionHandler.ActivateOpti
ons()"/> method
be called after the appenders properties have been configured.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Appender.IAppender">
<summary>
Implement this interface for your own strategies for printing log st
atements.
</summary>
<remarks>
<para>
Implementors should consider extending the <see cref="T:log4net.Appe
nder.AppenderSkeleton"/>
class which provides a default implementation of this interface.
</para>
<para>
Appenders can also implement the <see cref="T:log4net.Core.IOptionHa
ndler"/> interface. Therefore
they would require that the <see cref="M:IOptionHandler.ActivateOpti
ons()"/> method
be called after the appenders properties have been configured.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Appender.IAppender.Close">
<summary>
Closes the appender and releases resources.
</summary>
<remarks>
<para>
Releases any resources allocated within the appender such as file ha
ndles,
network connections, etc.
</para>
<para>
It is a programming error to append to a closed appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.Logging
Event)">
<summary>
Log the logging event in Appender specific way.
</summary>
<param name="loggingEvent">The event to log</param>
<remarks>
<para>
This method is called to log a message into this appender.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.IAppender.Name">
<summary>
Gets or sets the name of this appender.
</summary>
<value>The name of the appender.</value>
<remarks>
<para>The name uniquely identifies the appender.</para>
</remarks>
</member>
<member name="T:log4net.Appender.IBulkAppender">
<summary>
Interface for appenders that support bulk logging.
</summary>
<remarks>
<para>
This interface extends the <see cref="T:log4net.Appender.IAppender"/
> interface to
support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> ob
jects. Appenders
should only implement this interface if they can bulk log efficientl
y.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.Log
gingEvent[])">
<summary>
Log the array of logging events in Appender specific way.
</summary>
<param name="loggingEvents">The events to log</param>
<remarks>
<para>
This method is called to log an array of events into this appender.
</para>
</remarks>
</member>
<member name="T:log4net.Core.IOptionHandler">
<summary>
Interface used to delay activate a configured object.
</summary>
<remarks>
<para>
This allows an object to defer activation of its options until all
options have been set. This is required for components which have
related options that remain ambiguous until all are set.
</para>
<para>
If a component implements this interface then the <see cref="M:log4n
et.Core.IOptionHandler.ActivateOptions"/> method
must be called by the container after its all the configured propert
ies have been set
and before the component can be used.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Core.IOptionHandler.ActivateOptions">
<summary>
Activate the options that were previously set with calls to properti
es.
</summary>
<remarks>
<para>
This allows an object to defer activation of its options until all
options have been set. This is required for components which have
related options that remain ambiguous until all are set.
</para>
<para>
If a component implements this interface then this method must be ca
lled
after its properties have been set before the component can be used.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
<summary>
Initial buffer size
</summary>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapac
ity">
<summary>
Maximum buffer size before it is recycled
</summary>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>Empty default constructor</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.Finalize">
<summary>
Finalizes this appender by calling the implementation's
<see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
</summary>
<remarks>
<para>
If this appender has not been closed then the <c>Finalize</c> method
will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleto
n.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.Activ
ateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> mu
st be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.Close">
<summary>
Closes the appender and release resources.
</summary>
<remarks>
<para>
Release any resources allocated within the appender such as file han
dles,
network connections, etc.
</para>
<para>
It is a programming error to append to a closed appender.
</para>
<para>
This method cannot be overridden by subclasses. This method
delegates the closing of the appender to the <see cref="M:log4net.Ap
pender.AppenderSkeleton.OnClose"/>
method which must be overridden in the subclass.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.
LoggingEvent)">
<summary>
Performs threshold checks and invokes filters before
delegating actual logging to the subclasses specific
<see cref="M:Append(LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
This method cannot be overridden by derived classes. A
derived class should override the <see cref="M:Append(LoggingEvent)"
/> method
which is called by this method.
</para>
<para>
The implementation of this method is as follows:
</para>
<para>
<list type="bullet">
<item>
<description>
Checks that the severity of the <paramref name="loggingE
vent"/>
is greater than or equal to the <see cref="P:log4net.App
ender.AppenderSkeleton.Threshold"/> of this
appender.</description>
</item>
<item>
<description>
Checks that the <see cref="T:log4net.Filter.IFilter"/> c
hain accepts the
<paramref name="loggingEvent"/>.
</description>
</item>
<item>
<description>
Calls <see cref="M:PreAppendCheck()"/> and checks that
it returns <c>true</c>.</description>
</item>
</list>
</para>
<para>
If all of the above steps succeed then the <paramref name="loggingEv
ent"/>
will be passed to the abstract <see cref="M:Append(LoggingEvent)"/>
method.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.
LoggingEvent[])">
<summary>
Performs threshold checks and invokes filters before
delegating actual logging to the subclasses specific
<see cref="M:Append(LoggingEvent[])"/> method.
</summary>
<param name="loggingEvents">The array of events to log.</param>
<remarks>
<para>
This method cannot be overridden by derived classes. A
derived class should override the <see cref="M:Append(LoggingEvent[]
)"/> method
which is called by this method.
</para>
<para>
The implementation of this method is as follows:
</para>
<para>
<list type="bullet">
<item>
<description>
Checks that the severity of the <paramref name="loggingE
vents"/>
is greater than or equal to the <see cref="P:log4net.App
ender.AppenderSkeleton.Threshold"/> of this
appender.</description>
</item>
<item>
<description>
Checks that the <see cref="T:log4net.Filter.IFilter"/> c
hain accepts the
<paramref name="loggingEvents"/>.
</description>
</item>
<item>
<description>
Calls <see cref="M:PreAppendCheck()"/> and checks that
it returns <c>true</c>.</description>
</item>
</list>
</para>
<para>
If all of the above steps succeed then the <paramref name="loggingEv
ents"/>
will be passed to the <see cref="M:Append(LoggingEvent[])"/> method.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.FilterEvent(log4net.Co
re.LoggingEvent)">
<summary>
Test if the logging event should we output by this appender
</summary>
<param name="loggingEvent">the event to test</param>
<returns><c>true</c> if the event should be output, <c>false</c> if
the event should be ignored</returns>
<remarks>
<para>
This method checks the logging event against the threshold level set
on this appender and also against the filters specified on this
appender.
</para>
<para>
The implementation of this method is as follows:
</para>
<para>
<list type="bullet">
<item>
<description>
Checks that the severity of the <paramref name="loggingE
vent"/>
is greater than or equal to the <see cref="P:log4net.App
ender.AppenderSkeleton.Threshold"/> of this
appender.</description>
</item>
<item>
<description>
Checks that the <see cref="T:log4net.Filter.IFilter"/> c
hain accepts the
<paramref name="loggingEvent"/>.
</description>
</item>
</list>
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.AddFilter(log4net.Filt
er.IFilter)">
<summary>
Adds a filter to the end of the filter chain.
</summary>
<param name="filter">the filter to add to this appender</param>
<remarks>
<para>
The Filters are organized in a linked list.
</para>
<para>
Setting this property causes the new filter to be pushed onto the
back of the filter chain.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.ClearFilters">
<summary>
Clears the filter list for this appender.
</summary>
<remarks>
<para>
Clears the filter list for this appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.IsAsSevereAsThreshold(
log4net.Core.Level)">
<summary>
Checks if the message level is below this appender's threshold.
</summary>
<param name="level"><see cref="T:log4net.Core.Level"/> to test again
st.</param>
<remarks>
<para>
If there is no threshold set, then the return value is always <c>tru
e</c>.
</para>
</remarks>
<returns>
<c>true</c> if the <paramref name="level"/> meets the <see cref="P:l
og4net.Appender.AppenderSkeleton.Threshold"/>
requirements of this appender.
</returns>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.OnClose">
<summary>
Is called when the appender is closed. Derived classes should overri
de
this method if resources need to be released.
</summary>
<remarks>
<para>
Releases any resources allocated within the appender such as file ha
ndles,
network connections, etc.
</para>
<para>
It is a programming error to append to a closed appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.Lo
ggingEvent)">
<summary>
Subclasses of <see cref="T:log4net.Appender.AppenderSkeleton"/> shou
ld implement this method
to perform actual logging.
</summary>
<param name="loggingEvent">The event to append.</param>
<remarks>
<para>
A subclass must implement this method to perform
logging of the <paramref name="loggingEvent"/>.
</para>
<para>This method will be called by <see cref="M:DoAppend(LoggingEve
nt)"/>
if all the conditions listed for that method are met.
</para>
<para>
To restrict the logging of events in the appender
override the <see cref="M:PreAppendCheck()"/> method.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.Lo
ggingEvent[])">
<summary>
Append a bulk array of logging events.
</summary>
<param name="loggingEvents">the array of logging events</param>
<remarks>
<para>
This base class implementation calls the <see cref="M:Append(Logging
Event)"/>
method for each element in the bulk array.
</para>
<para>
A sub class that can better process a bulk array of events should
override this method in addition to <see cref="M:Append(LoggingEvent
)"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.PreAppendCheck">
<summary>
Called before <see cref="M:Append(LoggingEvent)"/> as a precondition
.
</summary>
<remarks>
<para>
This method is called by <see cref="M:DoAppend(LoggingEvent)"/>
before the call to the abstract <see cref="M:Append(LoggingEvent)"/>
method.
</para>
<para>
This method can be overridden in a subclass to extend the checks
made before the event is passed to the <see cref="M:Append(LoggingEv
ent)"/> method.
</para>
<para>
A subclass should ensure that they delegate this call to
this base class if it is overridden.
</para>
</remarks>
<returns><c>true</c> if the call to <see cref="M:Append(LoggingEvent
)"/> should proceed.</returns>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log
4net.Core.LoggingEvent)">
<summary>
Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
</summary>
<param name="loggingEvent">The event to render.</param>
<returns>The event rendered as a string.</returns>
<remarks>
<para>
Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/>
to
a string. This appender must have a <see cref="P:log4net.Appender.Ap
penderSkeleton.Layout"/>
set to render the <paramref name="loggingEvent"/> to
a string.
</para>
<para>If there is exception data in the logging event and
the layout does not process the exception, this method
will append the exception text to the rendered string.
</para>
<para>
Where possible use the alternative version of this method
<see cref="M:RenderLoggingEvent(TextWriter,LoggingEvent)"/>.
That method streams the rendering onto an existing Writer
which can give better performance if the caller already has
a <see cref="T:System.IO.TextWriter"/> open and ready for writing.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(Sys
tem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
</summary>
<param name="loggingEvent">The event to render.</param>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<remarks>
<para>
Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/>
to
a string. This appender must have a <see cref="P:log4net.Appender.Ap
penderSkeleton.Layout"/>
set to render the <paramref name="loggingEvent"/> to
a string.
</para>
<para>If there is exception data in the logging event and
the layout does not process the exception, this method
will append the exception text to the rendered string.
</para>
<para>
Use this method in preference to <see cref="M:RenderLoggingEvent(Log
gingEvent)"/>
where possible. If, however, the caller needs to render the event
to a string then <see cref="M:RenderLoggingEvent(LoggingEvent)"/> do
es
provide an efficient mechanism for doing so.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_layout">
<summary>
The layout of this appender.
</summary>
<remarks>
See <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> for mor
e information.
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_name">
<summary>
The name of this appender.
</summary>
<remarks>
See <see cref="P:log4net.Appender.AppenderSkeleton.Name"/> for more
information.
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_threshold">
<summary>
The level threshold of this appender.
</summary>
<remarks>
<para>
There is no level threshold filtering by default.
</para>
<para>
See <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> for
more information.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_errorHandler">
<summary>
It is assumed and enforced that errorHandler is never null.
</summary>
<remarks>
<para>
It is assumed and enforced that errorHandler is never null.
</para>
<para>
See <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> f
or more information.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_headFilter">
<summary>
The first filter in the filter chain.
</summary>
<remarks>
<para>
Set to <c>null</c> initially.
</para>
<para>
See <see cref="T:log4net.Filter.IFilter"/> for more information.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_tailFilter">
<summary>
The last filter in the filter chain.
</summary>
<remarks>
See <see cref="T:log4net.Filter.IFilter"/> for more information.
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_closed">
<summary>
Flag indicating if this appender is closed.
</summary>
<remarks>
See <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> for more
information.
</remarks>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_recursiveGuard">
<summary>
The guard prevents an appender from repeatedly calling its own DoApp
end method
</summary>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.m_renderWriter">
<summary>
StringWriter used to render events
</summary>
</member>
<member name="F:log4net.Appender.AppenderSkeleton.declaringType">
<summary>
The fully qualified type of the AppenderSkeleton class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.Threshold">
<summary>
Gets or sets the threshold <see cref="T:log4net.Core.Level"/> of thi
s appender.
</summary>
<value>
The threshold <see cref="T:log4net.Core.Level"/> of the appender.
</value>
<remarks>
<para>
All log events with lower level than the threshold level are ignored

by the appender.
</para>
<para>
In configuration files this option is specified by setting the
value of the <see cref="P:log4net.Appender.AppenderSkeleton.Threshol
d"/> option to a level
string, such as "DEBUG", "INFO" and so on.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.ErrorHandler">
<summary>
Gets or sets the <see cref="T:log4net.Core.IErrorHandler"/> for this
appender.
</summary>
<value>The <see cref="T:log4net.Core.IErrorHandler"/> of the appende
r</value>
<remarks>
<para>
The <see cref="T:log4net.Appender.AppenderSkeleton"/> provides a def
ault
implementation for the <see cref="P:log4net.Appender.AppenderSkeleto
n.ErrorHandler"/> property.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.FilterHead">
<summary>
The filter chain.
</summary>
<value>The head of the filter chain filter chain.</value>
<remarks>
<para>
Returns the head Filter. The Filters are organized in a linked list
and so all Filters on this Appender are available through the result
.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.Layout">
<summary>
Gets or sets the <see cref="T:log4net.Layout.ILayout"/> for this app
ender.
</summary>
<value>The layout of the appender.</value>
<remarks>
<para>
See <see cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
for more information.
</para>
</remarks>
<seealso cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.Name">
<summary>
Gets or sets the name of this appender.
</summary>
<value>The name of the appender.</value>
<remarks>
<para>
The name uniquely identifies the appender.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AppenderSkeleton.RequiresLayout">
<summary>
Tests if this appender requires a <see cref="P:log4net.Appender.Appe
nderSkeleton.Layout"/> to be set.
</summary>
<remarks>
<para>
In the rather exceptional case, where the appender
implementation admits a layout but can also work without it,
then the appender should return <c>true</c>.
</para>
<para>
This default implementation always returns <c>false</c>.
</para>
</remarks>
<returns>
<c>true</c> if the appender requires a layout object, otherwise <c>f
alse</c>.
</returns>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFE
R_SIZE">
<summary>
The default buffer size.
</summary>
<remarks>
The default size of the cyclic buffer used to store events.
This is set to 512 by default.
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Buff
eringAppenderSkeleton"/> class.
</summary>
<remarks>
<para>
Protected default constructor to allow subclassing.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor(System.
Boolean)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Buff
eringAppenderSkeleton"/> class.
</summary>
<param name="eventMustBeFixed">the events passed through this append
er must be
fixed by the time that they arrive in the derived class' <c>SendBuff
er</c> method.</param>
<remarks>
<para>
Protected constructor to allow subclassing.
</para>
<para>
The <paramref name="eventMustBeFixed"/> should be set if the subclas
s
expects the events delivered to be fixed even if the
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/
> is set to zero, i.e. when no buffering occurs.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush">
<summary>
Flush the currently buffered events
</summary>
<remarks>
<para>
Flushes any events that have been buffered.
</para>
<para>
If the appender is buffering in <see cref="P:log4net.Appender.Buffer
ingAppenderSkeleton.Lossy"/> mode then the contents
of the buffer will NOT be flushed to the appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.
Boolean)">
<summary>
Flush the currently buffered events
</summary>
<param name="flushLossyBuffer">set to <c>true</c> to flush the buffe
r of lossy events</param>
<remarks>
<para>
Flushes events that have been buffered. If <paramref name="flushLoss
yBuffer"/> is
<c>false</c> then events will only be flushed if this buffer is non-
lossy mode.
</para>
<para>
If the appender is buffering in <see cref="P:log4net.Appender.Buffer
ingAppenderSkeleton.Lossy"/> mode then the contents
of the buffer will only be flushed if <paramref name="flushLossyBuff
er"/> is <c>true</c>.
In this case the contents of the buffer will be tested against the
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluat
or"/> and if triggering will be output. All other buffered
events will be discarded.
</para>
<para>
If <paramref name="flushLossyBuffer"/> is <c>true</c> then the buffe
r will always
be emptied by calling this method.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptio
ns">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.BufferingAppend
erSkeleton.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.BufferingAppenderSkele
ton.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOpti
ons"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.OnClose">
<summary>
Close this appender instance.
</summary>
<remarks>
<para>
Close this appender instance. If this appender is marked
as not <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy
"/> then the remaining events in
the buffer must be sent when the appender is closed.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.Append(log4ne
t.Core.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">the event to log</param>
<remarks>
<para>
Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
</para>
<para>
The buffer will be sent (i.e. passed to the <see cref="M:log4net.App
ender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>
method) if one of the following conditions is met:
</para>
<list type="bullet">
<item>
<description>The cyclic buffer is full and this appender
is
marked as not lossy (see <see cref="P:log4net.Appender.B
ufferingAppenderSkeleton.Lossy"/>)</description>
</item>
<item>
<description>An <see cref="P:log4net.Appender.BufferingA
ppenderSkeleton.Evaluator"/> is set and
it is triggered for the <paramref name="loggingEvent"/>
specified.</description>
</item>
</list>
<para>
Before the event is stored in the buffer it is fixed
(see <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/>) to ensu
re that
any data referenced by the event will be valid when the buffer
is processed.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.SendFromBuffe
r(log4net.Core.LoggingEvent,log4net.Util.CyclicBuffer)">
<summary>
Sends the contents of the buffer.
</summary>
<param name="firstLoggingEvent">The first logging event.</param>
<param name="buffer">The buffer containing the events that need to b
e send.</param>
<remarks>
<para>
The subclass must override <see cref="M:SendBuffer(LoggingEvent[])"/
>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(lo
g4net.Core.LoggingEvent[])">
<summary>
Sends the events.
</summary>
<param name="events">The events that need to be send.</param>
<remarks>
<para>
The subclass must override this method to process the buffered event
s.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_bufferSize"
>
<summary>
The size of the cyclic buffer used to hold the logging events.
</summary>
<remarks>
Set to <see cref="F:log4net.Appender.BufferingAppenderSkeleton.DEFAU
LT_BUFFER_SIZE"/> by default.
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_cb">
<summary>
The cyclic buffer used to store the logging events.
</summary>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_evaluator">
<summary>
The triggering event evaluator that causes the buffer to be sent imm
ediately.
</summary>
<remarks>
The object that is used to determine if an event causes the entire
buffer to be sent immediately. This field can be <c>null</c>, which
indicates that event triggering is not to be done. The evaluator
can be set using the <see cref="P:log4net.Appender.BufferingAppender
Skeleton.Evaluator"/> property. If this appender
has the <see cref="F:log4net.Appender.BufferingAppenderSkeleton.m_lo
ssy"/> (<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> propert
y) set to
<c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderS
keleton.Evaluator"/> must be set.
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy">
<summary>
Indicates if the appender should overwrite events in the cyclic buff
er
when it becomes full, or if the buffer should be flushed when the
buffer is full.
</summary>
<remarks>
If this field is set to <c>true</c> then an <see cref="P:log4net.App
ender.BufferingAppenderSkeleton.Evaluator"/> must
be set.
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossyEvalua
tor">
<summary>
The triggering event evaluator filters discarded events.
</summary>
<remarks>
The object that is used to determine if an event that is discarded s
hould
really be discarded or if it should be sent to the appenders.
This field can be <c>null</c>, which indicates that all discarded ev
ents will
be discarded.
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_fixFlags">
<summary>
Value indicating which fields in the event should be fixed
</summary>
<remarks>
By default all fields are fixed
</remarks>
</member>
<member name="F:log4net.Appender.BufferingAppenderSkeleton.m_eventMustBe
Fixed">
<summary>
The events delivered to the subclass must be fixed.
</summary>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.Lossy">
<summary>
Gets or sets a value that indicates whether the appender is lossy.
</summary>
<value>
<c>true</c> if the appender is lossy, otherwise <c>false</c>. The de
fault is <c>false</c>.
</value>
<remarks>
<para>
This appender uses a buffer to store logging events before
delivering them. A triggering event causes the whole buffer
to be send to the remote sink. If the buffer overruns before
a triggering event then logging events could be lost. Set
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> to
<c>false</c> to prevent logging events
from being lost.
</para>
<para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Los
sy"/> is set to <c>true</c> then an
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
must be specified.</para>
</remarks>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize">
<summary>
Gets or sets the size of the cyclic buffer used to hold the
logging events.
</summary>
<value>
The size of the cyclic buffer used to hold the logging events.
</value>
<remarks>
<para>
The <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSi
ze"/> option takes a positive integer
representing the maximum number of logging events to collect in
a cyclic buffer. When the <see cref="P:log4net.Appender.BufferingApp
enderSkeleton.BufferSize"/> is reached,
oldest events are deleted as new events are added to the
buffer. By default the size of the cyclic buffer is 512 events.
</para>
<para>
If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Buffe
rSize"/> is set to a value less than
or equal to 1 then no buffering will occur. The logging event
will be delivered synchronously (depending on the <see cref="P:log4n
et.Appender.BufferingAppenderSkeleton.Lossy"/>
and <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluato
r"/> properties). Otherwise the event will
be buffered.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator">
<summary>
Gets or sets the <see cref="T:log4net.Core.ITriggeringEventEvaluator
"/> that causes the
buffer to be sent immediately.
</summary>
<value>
The <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that caus
es the buffer to be
sent immediately.
</value>
<remarks>
<para>
The evaluator will be called for each event that is appended to this

appender. If the evaluator triggers then the current buffer will
immediately be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>)
.
</para>
<para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Los
sy"/> is set to <c>true</c> then an
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
must be specified.</para>
</remarks>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluato
r">
<summary>
Gets or sets the value of the <see cref="T:log4net.Core.ITriggeringE
ventEvaluator"/> to use.
</summary>
<value>
The value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator
"/> to use.
</value>
<remarks>
<para>
The evaluator will be called for each event that is discarded from t
his
appender. If the evaluator triggers then the current buffer will imm
ediately
be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
</para>
</remarks>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartia
lEventData">
<summary>
Gets or sets a value indicating if only part of the logging event da
ta
should be fixed.
</summary>
<value>
<c>true</c> if the appender should only fix part of the logging even
t
data, otherwise <c>false</c>. The default is <c>false</c>.
</value>
<remarks>
<para>
Setting this property to <c>true</c> will cause only part of the
event data to be fixed and serialized. This will improve performance
.
</para>
<para>
See <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/> for more
information.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.BufferingAppenderSkeleton.Fix">
<summary>
Gets or sets a the fields that will be fixed in the event
</summary>
<value>
The event fields that will be fixed before the event is buffered
</value>
<remarks>
<para>
The logging event needs to have certain thread specific values
captured before it can be buffered. See <see cref="P:log4net.Core.Lo
ggingEvent.Fix"/>
for details.
</para>
</remarks>
<seealso cref="P:log4net.Core.LoggingEvent.Fix"/>
</member>
<member name="M:log4net.Appender.AdoNetAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.AdoN
etAppender"/> class.
</summary>
<remarks>
Public default constructor to initialize a new instance of this clas
s.
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.AdoNetAppender.
ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.AdoNetAppender.Activat
eOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.AdoNetAppender.ActivateOptions"/> must
be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.OnClose">
<summary>
Override the parent method to close the database
</summary>
<remarks>
<para>
Closes the database command and database connection.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.SendBuffer(log4net.Core.
LoggingEvent[])">
<summary>
Inserts the events into the database.
</summary>
<param name="events">The events to insert into the database.</param>
<remarks>
<para>
Insert all the events specified in the <paramref name="events"/>
array into the database.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.App
ender.AdoNetAppenderParameter)">
<summary>
Adds a parameter to the command.
</summary>
<param name="parameter">The parameter to add to the command.</param>
<remarks>
<para>
Adds a parameter to the ordered list of command parameters.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.SendBuffer(System.Data.I
DbTransaction,log4net.Core.LoggingEvent[])">
<summary>
Writes the events to the database using the transaction specified.
</summary>
<param name="dbTran">The transaction that the events will be execute
d under.</param>
<param name="events">The array of events to insert into the database
.</param>
<remarks>
<para>
The transaction argument can be <c>null</c> if the appender has been
configured not to use transactions. See <see cref="P:log4net.Appende
r.AdoNetAppender.UseTransactions"/>
property for more information.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppender.GetLogStatement(log4net.
Core.LoggingEvent)">
<summary>
Formats the log message into database statement text.
</summary>
<param name="logEvent">The event being logged.</param>
<remarks>
This method can be overridden by subclasses to provide
more control over the format of the database statement.
</remarks>
<returns>
Text that can be passed to a <see cref="T:System.Data.IDbCommand"/>.
</returns>
</member>
<member name="M:log4net.Appender.AdoNetAppender.CreateConnection(System.
Type,System.String)">
<summary>
Creates an <see cref="T:System.Data.IDbConnection"/> instance used t
o connect to the database.
</summary>
<remarks>
This method is called whenever a new IDbConnection is needed (i.e. w
hen a reconnect is necessary).
</remarks>
<param name="connectionType">The <see cref="T:System.Type"/> of the
<see cref="T:System.Data.IDbConnection"/> object.</param>
<param name="connectionString">The connectionString output from the
ResolveConnectionString method.</param>
<returns>An <see cref="T:System.Data.IDbConnection"/> instance with
a valid connection string.</returns>
</member>
<member name="M:log4net.Appender.AdoNetAppender.ResolveConnectionString(
System.String@)">
<summary>
Resolves the connection string from the ConnectionString, Connection
StringName, or AppSettingsKey
property.
</summary>
<remarks>
ConnectiongStringName is only supported on .NET 2.0 and higher.
</remarks>
<param name="connectionStringContext">Additional information describ
ing the connection string.</param>
<returns>A connection string used to connect to the database.</retur
ns>
</member>
<member name="M:log4net.Appender.AdoNetAppender.ResolveConnectionType">
<summary>
Retrieves the class type of the ADO.NET provider.
</summary>
<remarks>
<para>
Gets the Type of the ADO.NET provider to use to connect to the
database. This method resolves the type specified in the
<see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> prope
rty.
</para>
<para>
Subclasses can override this method to return a different type
if necessary.
</para>
</remarks>
<returns>The <see cref="T:System.Type"/> of the ADO.NET provider</re
turns>
</member>
<member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseComman
d">
<summary>
Prepares the database command and initialize the parameters.
</summary>
</member>
<member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseConnec
tion">
<summary>
Connects to the database.
</summary>
</member>
<member name="M:log4net.Appender.AdoNetAppender.DisposeCommand(System.Bo
olean)">
<summary>
Cleanup the existing command.
</summary>
<param name="ignoreException">
If true, a message will be written using LogLog.Warn if an exception
is encountered when calling Dispose.
</param>
</member>
<member name="M:log4net.Appender.AdoNetAppender.DiposeConnection">
<summary>
Cleanup the existing connection.
</summary>
<remarks>
Calls the IDbConnection's <see cref="M:System.Data.IDbConnection.Clo
se"/> method.
</remarks>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_usePreparedCommand">
<summary>
Flag to indicate if we are using a command object
</summary>
<remarks>
<para>
Set to <c>true</c> when the appender is to use a prepared
statement or stored procedure to insert into the database.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_parameters">
<summary>
The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/>
objects.
</summary>
<remarks>
<para>
The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/>
objects.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_securityContext">
<summary>
The security context to use for privileged calls
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_dbConnection">
<summary>
The <see cref="T:System.Data.IDbConnection"/> that will be used
to insert logging events into a database.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_dbCommand">
<summary>
The database command.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_connectionString">
<summary>
Database connection string.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_appSettingsKey">
<summary>
The appSettings key from App.Config that contains the connection str
ing.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_connectionStringName">
<summary>
The connectionStrings key from App.Config that contains the connecti
on string.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_connectionType">
<summary>
String type name of the <see cref="T:System.Data.IDbConnection"/> ty
pe name.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_commandText">
<summary>
The text of the command.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_commandType">
<summary>
The command type.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_useTransactions">
<summary>
Indicates whether to use transactions when writing to the database.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.m_reconnectOnError">
<summary>
Indicates whether to use transactions when writing to the database.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppender.declaringType">
<summary>
The fully qualified type of the AdoNetAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.ConnectionString">
<summary>
Gets or sets the database connection string that is used to connect
to
the database.
</summary>
<value>
The database connection string used to connect to the database.
</value>
<remarks>
<para>
The connections string is specific to the connection type.
See <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> f
or more information.
</para>
</remarks>
<example>Connection string for MS Access via ODBC:
<code>"DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System
.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"</
code>
</example>
<example>Another connection string for MS Access via ODBC:
<code>"Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root
\log4net-1.2\access.mdb;UID=;PWD=;"</code>
</example>
<example>Connection string for MS Access via OLE DB:
<code>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root
\log4net-1.2\access.mdb;User Id=;Password=;"</code>
</example>
</member>
<member name="P:log4net.Appender.AdoNetAppender.AppSettingsKey">
<summary>
The appSettings key from App.Config that contains the connection str
ing.
</summary>
</member>
<member name="P:log4net.Appender.AdoNetAppender.ConnectionStringName">
<summary>
The connectionStrings key from App.Config that contains the connecti
on string.
</summary>
<remarks>
This property requires at least .NET 2.0.
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.ConnectionType">
<summary>
Gets or sets the type name of the <see cref="T:System.Data.IDbConnec
tion"/> connection
that should be created.
</summary>
<value>
The type name of the <see cref="T:System.Data.IDbConnection"/> conne
ction.
</value>
<remarks>
<para>
The type name of the ADO.NET provider to use.
</para>
<para>
The default is to use the OLE DB provider.
</para>
</remarks>
<example>Use the OLE DB Provider. This is the default value.
<code>System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.33
00.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
</example>
<example>Use the MS SQL Server Provider.
<code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.
3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
</example>
<example>Use the ODBC Provider.
<code>Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version
=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral</code>
This is an optional package that you can download from
<a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.
com/downloads</a>
search for <b>ODBC .NET Data Provider</b>.
</example>
<example>Use the Oracle Provider.
<code>System.Data.OracleClient.OracleConnection, System.Data.OracleC
lient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</cod
e>
This is an optional package that you can download from
<a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.
com/downloads</a>
search for <b>.NET Managed Provider for Oracle</b>.
</example>
</member>
<member name="P:log4net.Appender.AdoNetAppender.CommandText">
<summary>
Gets or sets the command text that is used to insert logging events
into the database.
</summary>
<value>
The command text used to insert logging events into the database.
</value>
<remarks>
<para>
Either the text of the prepared statement or the
name of the stored procedure to execute to write into
the database.
</para>
<para>
The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> prop
erty determines if
this text is a prepared statement or a stored procedure.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.CommandType">
<summary>
Gets or sets the command type to execute.
</summary>
<value>
The command type to execute.
</value>
<remarks>
<para>
This value may be either <see cref="F:System.Data.CommandType.Text"/
> (<c>System.Data.CommandType.Text</c>) to specify
that the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/>
is a prepared statement to execute,
or <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>Syste
m.Data.CommandType.StoredProcedure</c>) to specify that the
<see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property
is the name of a stored procedure
to execute.
</para>
<para>
The default value is <see cref="F:System.Data.CommandType.Text"/> (<
c>System.Data.CommandType.Text</c>).
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.UseTransactions">
<summary>
Should transactions be used to insert logging events in the database
.
</summary>
<value>
<c>true</c> if transactions should be used to insert logging events
in
the database, otherwise <c>false</c>. The default value is <c>true</
c>.
</value>
<remarks>
<para>
Gets or sets a value that indicates whether transactions should be u
sed
to insert logging events in the database.
</para>
<para>
When set a single transaction will be used to insert the buffered ev
ents
into the database. Otherwise each event will be inserted without usi
ng
an explicit transaction.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.SecurityContext">
<summary>
Gets or sets the <see cref="P:log4net.Appender.AdoNetAppender.Securi
tyContext"/> used to call the NetSend method.
</summary>
<value>
The <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/>
used to call the NetSend method.
</value>
<remarks>
<para>
Unless a <see cref="P:log4net.Appender.AdoNetAppender.SecurityContex
t"/> specified here for this appender
the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvide
r"/> is queried for the
security context to use. The default behavior is to use the security
context
of the current thread.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.ReconnectOnError">
<summary>
Should this appender try to reconnect to the database on error.
</summary>
<value>
<c>true</c> if the appender should try to reconnect to the database
after an
error has occurred, otherwise <c>false</c>. The default value is <c>
false</c>,
i.e. not to try to reconnect.
</value>
<remarks>
<para>
The default behaviour is for the appender not to try to reconnect to
the
database if an error occurs. Subsequent logging events are discarded
.
</para>
<para>
To force the appender to attempt to reconnect to the database set th
is
property to <c>true</c>.
</para>
<note>
When the appender attempts to connect to the database there may be a
delay of up to the connection timeout specified in the connection st
ring.
This delay will block the calling application's thread.
Until the connection can be reestablished this potential delay may o
ccur multiple times.
</note>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppender.Connection">
<summary>
Gets or sets the underlying <see cref="T:System.Data.IDbConnection"/
>.
</summary>
<value>
The underlying <see cref="T:System.Data.IDbConnection"/>.
</value>
<remarks>
<see cref="T:log4net.Appender.AdoNetAppender"/> creates a <see cref=
"T:System.Data.IDbConnection"/> to insert
logging events into a database. Classes deriving from <see cref="T:
log4net.Appender.AdoNetAppender"/>
can use this property to get or set this <see cref="T:System.Data.ID
bConnection"/>. Use the
underlying <see cref="T:System.Data.IDbConnection"/> returned from <
see cref="P:log4net.Appender.AdoNetAppender.Connection"/> if
you require access beyond that which <see cref="T:log4net.Appender.A
doNetAppender"/> provides.
</remarks>
</member>
<member name="T:log4net.Appender.AdoNetAppenderParameter">
<summary>
Parameter type used by the <see cref="T:log4net.Appender.AdoNetAppen
der"/>.
</summary>
<remarks>
<para>
This class provides the basic database parameter properties
as defined by the <see cref="T:System.Data.IDbDataParameter"/> inter
face.
</para>
<para>This type can be subclassed to provide database specific
functionality. The two methods that are called externally are
<see cref="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System
.Data.IDbCommand)"/> and <see cref="M:log4net.Appender.AdoNetAppenderParameter.F
ormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppenderParameter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.AdoN
etAppenderParameter"/> class.
</summary>
<remarks>
Default constructor for the AdoNetAppenderParameter class.
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.
Data.IDbCommand)">
<summary>
Prepare the specified database command object.
</summary>
<param name="command">The command to prepare.</param>
<remarks>
<para>
Prepares the database command object by adding
this parameter to its collection of parameters.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(Sys
tem.Data.IDbCommand,log4net.Core.LoggingEvent)">
<summary>
Renders the logging event and set the parameter value in the command
.
</summary>
<param name="command">The command containing the parameter.</param>
<param name="loggingEvent">The event to be rendered.</param>
<remarks>
<para>
Renders the logging event using this parameters layout
object. Sets the value of the parameter on the command object.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_parameterName
">
<summary>
The name of this parameter.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_dbType">
<summary>
The database type for this parameter.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_inferType">
<summary>
Flag to infer type rather than use the DbType
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_precision">
<summary>
The precision for this parameter.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_scale">
<summary>
The scale for this parameter.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_size">
<summary>
The size for this parameter.
</summary>
</member>
<member name="F:log4net.Appender.AdoNetAppenderParameter.m_layout">
<summary>
The <see cref="T:log4net.Layout.IRawLayout"/> to use to render the
logging event into an object for this parameter.
</summary>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.ParameterName">
<summary>
Gets or sets the name of this parameter.
</summary>
<value>
The name of this parameter.
</value>
<remarks>
<para>
The name of this parameter. The parameter name
must match up to a named parameter to the SQL stored procedure
or prepared statement.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.DbType">
<summary>
Gets or sets the database type for this parameter.
</summary>
<value>
The database type for this parameter.
</value>
<remarks>
<para>
The database type for this parameter. This property should
be set to the database type from the <see cref="P:log4net.Appender.A
doNetAppenderParameter.DbType"/>
enumeration. See <see cref="P:System.Data.IDataParameter.DbType"/>.
</para>
<para>
This property is optional. If not specified the ADO.NET provider
will attempt to infer the type from the value.
</para>
</remarks>
<seealso cref="P:System.Data.IDataParameter.DbType"/>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.Precision">
<summary>
Gets or sets the precision for this parameter.
</summary>
<value>
The precision for this parameter.
</value>
<remarks>
<para>
The maximum number of digits used to represent the Value.
</para>
<para>
This property is optional. If not specified the ADO.NET provider
will attempt to infer the precision from the value.
</para>
</remarks>
<seealso cref="P:System.Data.IDbDataParameter.Precision"/>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.Scale">
<summary>
Gets or sets the scale for this parameter.
</summary>
<value>
The scale for this parameter.
</value>
<remarks>
<para>
The number of decimal places to which Value is resolved.
</para>
<para>
This property is optional. If not specified the ADO.NET provider
will attempt to infer the scale from the value.
</para>
</remarks>
<seealso cref="P:System.Data.IDbDataParameter.Scale"/>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.Size">
<summary>
Gets or sets the size for this parameter.
</summary>
<value>
The size for this parameter.
</value>
<remarks>
<para>
The maximum size, in bytes, of the data within the column.
</para>
<para>
This property is optional. If not specified the ADO.NET provider
will attempt to infer the size from the value.
</para>
<para>
For BLOB data types like VARCHAR(max) it may be impossible to infer
the value automatically, use -1 as the size in this case.
</para>
</remarks>
<seealso cref="P:System.Data.IDbDataParameter.Size"/>
</member>
<member name="P:log4net.Appender.AdoNetAppenderParameter.Layout">
<summary>
Gets or sets the <see cref="T:log4net.Layout.IRawLayout"/> to use to

render the logging event into an object for this
parameter.
</summary>
<value>
The <see cref="T:log4net.Layout.IRawLayout"/> used to render the
logging event into an object for this parameter.
</value>
<remarks>
<para>
The <see cref="T:log4net.Layout.IRawLayout"/> that renders the value
for this
parameter.
</para>
<para>
The <see cref="T:log4net.Layout.RawLayoutConverter"/> can be used to
adapt
any <see cref="T:log4net.Layout.ILayout"/> into a <see cref="T:log4n
et.Layout.IRawLayout"/>
for use in the property.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.AnsiColorTerminalAppender">
<summary>
Appends logging events to the terminal using ANSI color escape seque
nces.
</summary>
<remarks>
<para>
AnsiColorTerminalAppender appends log events to the standard output
stream
or the error output stream using a layout specified by the
user. It also allows the color of a specific level of message to be
set.
</para>
<note>
This appender expects the terminal to understand the VT100 control s
et
in order to interpret the color codes. If the terminal or console do
es not
understand the control codes the behavior is not defined.
</note>
<para>
By default, all output is written to the console's standard output s
tream.
The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/
> property can be set to direct the output to the
error stream.
</para>
<para>
NOTE: This appender writes each message to the <c>System.Console.Out
</c> or
<c>System.Console.Error</c> that is set at the time the event is app
ended.
Therefore it is possible to programmatically redirect the output of
this appender
(for example NUnit does this to capture program output). While this
is the desired
behavior of this appender it may have security implications in your
application.
</para>
<para>
When configuring the ANSI colored terminal appender, a mapping shoul
d be
specified to map a logging level to a color. For example:
</para>
<code lang="XML" escaped="true">
<mapping>
<level value="ERROR"/>
<foreColor value="White"/>
<backColor value="Red"/>
<attributes value="Bright,Underscore"/>
</mapping>
<mapping>
<level value="DEBUG"/>
<backColor value="Green"/>
</mapping>
</code>
<para>
The Level is the standard log4net logging level and ForeColor and Ba
ckColor can be any
of the following values:
<list type="bullet">
<item><term>Blue</term><description></description></item>
<item><term>Green</term><description></description></item>
<item><term>Red</term><description></description></item>
<item><term>White</term><description></description></item>
<item><term>Yellow</term><description></description></item>
<item><term>Purple</term><description></description></item>
<item><term>Cyan</term><description></description></item>
</list>
These color values cannot be combined together to make new colors.
</para>
<para>
The attributes can be any combination of the following:
<list type="bullet">
<item><term>Bright</term><description>foreground is brighter</descri
ption></item>
<item><term>Dim</term><description>foreground is dimmer</description
></item>
<item><term>Underscore</term><description>message is underlined</des
cription></item>
<item><term>Blink</term><description>foreground is blinking (does no
t work on all terminals)</description></item>
<item><term>Reverse</term><description>foreground and background are
reversed</description></item>
<item><term>Hidden</term><description>output is hidden</description>
</item>
<item><term>Strikethrough</term><description>message has a line thro
ugh it</description></item>
</list>
While any of these attributes may be combined together not all combi
nations
work well together, for example setting both <i>Bright</i> and <i>Di
m</i> attributes makes
no sense.
</para>
</remarks>
<author>Patrick Wagstrom</author>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleOut">
<summary>
The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/
> to use when writing to the Console
standard output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/
> to use when writing to the Console
standard output stream.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleError"
>
<summary>
The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/
> to use when writing to the Console
standard error output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/
> to use when writing to the Console
standard error output stream.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.PostEventCode
s">
<summary>
Ansi code to reset terminal
</summary>
</member>
<member name="M:log4net.Appender.AnsiColorTerminalAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Ansi
ColorTerminalAppender"/> class.
</summary>
<remarks>
The instance of the <see cref="T:log4net.Appender.AnsiColorTerminalA
ppender"/> class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.AnsiColorTerminalAppender.AddMapping(lo
g4net.Appender.AnsiColorTerminalAppender.LevelColors)">
<summary>
Add a mapping of level to color
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Add a <see cref="T:log4net.Appender.AnsiColorTerminalAppender.LevelC
olors"/> mapping to this appender.
Each mapping defines the foreground and background colours
for a level.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AnsiColorTerminalAppender.Append(log4ne
t.Core.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to the console.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AnsiColorTerminalAppender.ActivateOptio
ns">
<summary>
Initialize the options for this appender
</summary>
<remarks>
<para>
Initialize the level to color mappings set on this appender.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.m_writeToErro
rStream">
<summary>
Flag to write output to the error stream rather than the standard ou
tput stream
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.m_levelMappin
g">
<summary>
Mapping from level object to color value
</summary>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.Target">
<summary>
Target is the value of the console output stream.
</summary>
<value>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</value>
<remarks>
<para>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.RequiresLayou
t">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s">
<summary>
The enum of possible display attributes
</summary>
<remarks>
<para>
The following flags can be combined together to
form the ANSI color attributes.
</para>
</remarks>
<seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Bright">
<summary>
text is bright
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Dim">
<summary>
text is dim
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Underscore">
<summary>
text is underlined
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Blink">
<summary>
text is blinking
</summary>
<remarks>
Not all terminals support this attribute
</remarks>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Reverse">
<summary>
text and background colors are reversed
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Hidden">
<summary>
text is hidden
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Strikethrough">
<summary>
text is displayed with a strikethrough
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttribute
s.Light">
<summary>
text color is light
</summary>
</member>
<member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiColor">
<summary>
The enum of possible foreground or background color values for
use with the color mapping method
</summary>
<remarks>
<para>
The output can be in one for the following ANSI colors.
</para>
</remarks>
<seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Bla
ck">
<summary>
color is black
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Red
">
<summary>
color is red
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Gre
en">
<summary>
color is green
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Yel
low">
<summary>
color is yellow
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Blu
e">
<summary>
color is blue
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Mag
enta">
<summary>
color is magenta
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Cya
n">
<summary>
color is cyan
</summary>
</member>
<member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Whi
te">
<summary>
color is white
</summary>
</member>
<member name="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors">
<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.
</summary>
<remarks>
<para>
Defines the mapping between a level and the color it should be displ
ayed in.
</para>
</remarks>
</member>
<member name="T:log4net.Util.LevelMappingEntry">
<summary>
An entry in the <see cref="T:log4net.Util.LevelMapping"/>
</summary>
<remarks>
<para>
This is an abstract base class for types that are stored in the
<see cref="T:log4net.Util.LevelMapping"/> object.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.LevelMappingEntry.#ctor">
<summary>
Default protected constructor
</summary>
<remarks>
<para>
Default protected constructor
</para>
</remarks>
</member>
<member name="M:log4net.Util.LevelMappingEntry.ActivateOptions">
<summary>
Initialize any options defined on this entry
</summary>
<remarks>
<para>
Should be overridden by any classes that need to initialise based on
their options
</para>
</remarks>
</member>
<member name="P:log4net.Util.LevelMappingEntry.Level">
<summary>
The level that is the key for this mapping
</summary>
<value>
The <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the
key for this mapping
</value>
<remarks>
<para>
Get or set the <see cref="P:log4net.Util.LevelMappingEntry.Level"/>
that is the key for this
mapping subclass.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AnsiColorTerminalAppender.LevelColors.A
ctivateOptions">
<summary>
Initialize the options for the object
</summary>
<remarks>
<para>
Combine the <see cref="P:log4net.Appender.AnsiColorTerminalAppender.
LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.AnsiColorTerminalAppe
nder.LevelColors.BackColor"/> together
and append the attributes.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.F
oreColor">
<summary>
The mapped foreground color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped foreground color for the specified level
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.B
ackColor">
<summary>
The mapped background color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped background color for the specified level
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.A
ttributes">
<summary>
The color attributes for the specified level
</summary>
<remarks>
<para>
Required property.
The color attributes for the specified level
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.C
ombinedColor">
<summary>
The combined <see cref="P:log4net.Appender.AnsiColorTerminalAppender
.LevelColors.ForeColor"/>, <see cref="P:log4net.Appender.AnsiColorTerminalAppend
er.LevelColors.BackColor"/> and
<see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.
Attributes"/> suitable for setting the ansi terminal color.
</summary>
</member>
<member name="T:log4net.Appender.AppenderCollection">
<summary>
A strongly-typed collection of <see cref="T:log4net.Appender.IAppend
er"/> objects.
</summary>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.AppenderCollection.ReadOnly(log4net.App
ender.AppenderCollection)">
<summary>
Creates a read-only wrapper for a <c>AppenderCollection</c> instance
.
</summary>
<param name="list">list to create a readonly wrapper arround</param>
<returns>
An <c>AppenderCollection</c> wrapper that is read-only.
</returns>
</member>
<member name="F:log4net.Appender.AppenderCollection.EmptyCollection">
<summary>
An empty readonly static AppenderCollection
</summary>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor">
<summary>
Initializes a new instance of the <c>AppenderCollection</c> class
that is empty and has the default initial capacity.
</summary>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor(System.Int32)"
>
<summary>
Initializes a new instance of the <c>AppenderCollection</c> class
that has the specified initial capacity.
</summary>
<param name="capacity">
The number of elements that the new <c>AppenderCollection</c> is ini
tially capable of storing.
</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Append
er.AppenderCollection)">
<summary>
Initializes a new instance of the <c>AppenderCollection</c> class
that contains elements copied from the specified <c>AppenderCollecti
on</c>.
</summary>
<param name="c">The <c>AppenderCollection</c> whose elements are cop
ied to the new collection.</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Append
er.IAppender[])">
<summary>
Initializes a new instance of the <c>AppenderCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Appender.IAppender"/> array.
</summary>
<param name="a">The <see cref="T:log4net.Appender.IAppender"/> array
whose elements are copied to the new list.</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor(System.Collect
ions.ICollection)">
<summary>
Initializes a new instance of the <c>AppenderCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Appender.IAppender"/> collection.
</summary>
<param name="col">The <see cref="T:log4net.Appender.IAppender"/> col
lection whose elements are copied to the new list.</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Append
er.AppenderCollection.Tag)">
<summary>
Allow subclasses to avoid our default constructors
</summary>
<param name="tag"></param>
<exclude/>
</member>
<member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appen
der.IAppender[])">
<summary>
Copies the entire <c>AppenderCollection</c> to a one-dimensional
<see cref="T:log4net.Appender.IAppender"/> array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Appende
r.IAppender"/> array to copy to.</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appen
der.IAppender[],System.Int32)">
<summary>
Copies the entire <c>AppenderCollection</c> to a one-dimensional
<see cref="T:log4net.Appender.IAppender"/> array, starting at the sp
ecified index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Appende
r.IAppender"/> array to copy to.</param>
<param name="start">The zero-based index in <paramref name="array"/>
at which copying begins.</param>
</member>
<member name="M:log4net.Appender.AppenderCollection.Add(log4net.Appender
.IAppender)">
<summary>
Adds a <see cref="T:log4net.Appender.IAppender"/> to the end of the
<c>AppenderCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Appender.IAppender"/> to
be added to the end of the <c>AppenderCollection</c>.</param>
<returns>The index at which the value has been added.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.Clear">
<summary>
Removes all elements from the <c>AppenderCollection</c>.
</summary>
</member>
<member name="M:log4net.Appender.AppenderCollection.Clone">
<summary>
Creates a shallow copy of the <see cref="T:log4net.Appender.Appender
Collection"/>.
</summary>
<returns>A new <see cref="T:log4net.Appender.AppenderCollection"/> w
ith a shallow copy of the collection data.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.Contains(log4net.App
ender.IAppender)">
<summary>
Determines whether a given <see cref="T:log4net.Appender.IAppender"/
> is in the <c>AppenderCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Appender.IAppender"/> to
check for.</param>
<returns><c>true</c> if <paramref name="item"/> is found in the <c>A
ppenderCollection</c>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.IndexOf(log4net.Appe
nder.IAppender)">
<summary>
Returns the zero-based index of the first occurrence of a <see cref=
"T:log4net.Appender.IAppender"/>
in the <c>AppenderCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Appender.IAppender"/> to
locate in the <c>AppenderCollection</c>.</param>
<returns>
The zero-based index of the first occurrence of <paramref name="item
"/>
in the entire <c>AppenderCollection</c>, if found; otherwise, -1.
</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.Insert(System.Int32,
log4net.Appender.IAppender)">
<summary>
Inserts an element into the <c>AppenderCollection</c> at the specifi
ed index.
</summary>
<param name="index">The zero-based index at which <paramref name="it
em"/> should be inserted.</param>
<param name="item">The <see cref="T:log4net.Appender.IAppender"/> to
insert.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Appender.AppenderCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.Remove(log4net.Appen
der.IAppender)">
<summary>
Removes the first occurrence of a specific <see cref="T:log4net.Appe
nder.IAppender"/> from the <c>AppenderCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Appender.IAppender"/> to
remove from the <c>AppenderCollection</c>.</param>
<exception cref="T:System.ArgumentException">
The specified <see cref="T:log4net.Appender.IAppender"/> was not fou
nd in the <c>AppenderCollection</c>.
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.RemoveAt(System.Int3
2)">
<summary>
Removes the element at the specified index of the <c>AppenderCollect
ion</c>.
</summary>
<param name="index">The zero-based index of the element to remove.</
param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Appender.AppenderCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.GetEnumerator">
<summary>
Returns an enumerator that can iterate through the <c>AppenderCollec
tion</c>.
</summary>
<returns>An <see cref="T:log4net.Appender.AppenderCollection.Enumera
tor"/> for the entire <c>AppenderCollection</c>.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.App
ender.AppenderCollection)">
<summary>
Adds the elements of another <c>AppenderCollection</c> to the curren
t <c>AppenderCollection</c>.
</summary>
<param name="x">The <c>AppenderCollection</c> whose elements should
be added to the end of the current <c>AppenderCollection</c>.</param>
<returns>The new <see cref="P:log4net.Appender.AppenderCollection.Co
unt"/> of the <c>AppenderCollection</c>.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.App
ender.IAppender[])">
<summary>
Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> ar
ray to the current <c>AppenderCollection</c>.
</summary>
<param name="x">The <see cref="T:log4net.Appender.IAppender"/> array
whose elements should be added to the end of the <c>AppenderCollection</c>.</pa
ram>
<returns>The new <see cref="P:log4net.Appender.AppenderCollection.Co
unt"/> of the <c>AppenderCollection</c>.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.AddRange(System.Coll
ections.ICollection)">
<summary>
Adds the elements of a <see cref="T:log4net.Appender.IAppender"/> co
llection to the current <c>AppenderCollection</c>.
</summary>
<param name="col">The <see cref="T:log4net.Appender.IAppender"/> col
lection whose elements should be added to the end of the <c>AppenderCollection</
c>.</param>
<returns>The new <see cref="P:log4net.Appender.AppenderCollection.Co
unt"/> of the <c>AppenderCollection</c>.</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.TrimToSize">
<summary>
Sets the capacity to the actual number of elements.
</summary>
</member>
<member name="M:log4net.Appender.AppenderCollection.ToArray">
<summary>
Return the collection elements as an array
</summary>
<returns>the array</returns>
</member>
<member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System
.Int32)">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Appender.AppenderCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.ValidateIndex(System
.Int32,System.Boolean)">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Appender.AppenderCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Appender.AppenderCollection.Count">
<summary>
Gets the number of elements actually contained in the <c>AppenderCol
lection</c>.
</summary>
</member>
<member name="P:log4net.Appender.AppenderCollection.IsSynchronized">
<summary>
Gets a value indicating whether access to the collection is synchron
ized (thread-safe).
</summary>
<returns>true if access to the ICollection is synchronized (thread-s
afe); otherwise, false.</returns>
</member>
<member name="P:log4net.Appender.AppenderCollection.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the collect
ion.
</summary>
</member>
<member name="P:log4net.Appender.AppenderCollection.Item(System.Int32)">
<summary>
Gets or sets the <see cref="T:log4net.Appender.IAppender"/> at the s
pecified index.
</summary>
<param name="index">The zero-based index of the element to get or se
t.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see
cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Appender.AppenderCollection.IsFixedSize">
<summary>
Gets a value indicating whether the collection has a fixed size.
</summary>
<value>true if the collection has a fixed size; otherwise, false. Th
e default is false</value>
</member>
<member name="P:log4net.Appender.AppenderCollection.IsReadOnly">
<summary>
Gets a value indicating whether the IList is read-only.
</summary>
<value>true if the collection is read-only; otherwise, false. The de
fault is false</value>
</member>
<member name="P:log4net.Appender.AppenderCollection.Capacity">
<summary>
Gets or sets the number of elements the <c>AppenderCollection</c> ca
n contain.
</summary>
</member>
<member name="T:log4net.Appender.AppenderCollection.IAppenderCollectionE
numerator">
<summary>
Supports type-safe iteration over a <see cref="T:log4net.Appender.Ap
penderCollection"/>.
</summary>
<exclude/>
</member>
<member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionE
numerator.MoveNext">
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionE
numerator.Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Appender.AppenderCollection.IAppenderCollectionE
numerator.Current">
<summary>
Gets the current element in the collection.
</summary>
</member>
<member name="T:log4net.Appender.AppenderCollection.Tag">
<summary>
Type visible only to our subclasses
Used to access protected constructor
</summary>
<exclude/>
</member>
<member name="F:log4net.Appender.AppenderCollection.Tag.Default">
<summary>
A value
</summary>
</member>
<member name="T:log4net.Appender.AppenderCollection.Enumerator">
<summary>
Supports simple iteration over a <see cref="T:log4net.Appender.Appen
derCollection"/>.
</summary>
<exclude/>
</member>
<member name="M:log4net.Appender.AppenderCollection.Enumerator.#ctor(log
4net.Appender.AppenderCollection)">
<summary>
Initializes a new instance of the <c>Enumerator</c> class.
</summary>
<param name="tc"></param>
</member>
<member name="M:log4net.Appender.AppenderCollection.Enumerator.MoveNext"
>
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Appender.AppenderCollection.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Appender.AppenderCollection.Enumerator.Current">
<summary>
Gets the current element in the collection.
</summary>
</member>
<member name="T:log4net.Appender.AppenderCollection.ReadOnlyAppenderColl
ection">
<exclude/>
</member>
<member name="T:log4net.Appender.AspNetTraceAppender">
<summary>
<para>
Appends log events to the ASP.NET <see cref="T:System.Web.TraceConte
xt"/> system.
</para>
</summary>
<remarks>
<para>
Diagnostic information and tracing messages that you specify are app
ended to the output
of the page that is sent to the requesting browser. Optionally, you
can view this information
from a separate trace viewer (Trace.axd) that displays trace informa
tion for every page in a
given application.
</para>
<para>
Trace statements are processed and displayed only when tracing is en
abled. You can control
whether tracing is displayed to a page, to the trace viewer, or both
.
</para>
<para>
The logging event is passed to the <see cref="M:TraceContext.Write(s
tring)"/> or
<see cref="M:TraceContext.Warn(string)"/> method depending on the le
vel of the logging event.
The event's logger name is the default value for the category parame
ter of the Write/Warn method.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Appender.AspNetTraceAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.AspN
etTraceAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.AspNetTraceAppender.Append(log4net.Core
.LoggingEvent)">
<summary>
Write the logging event to the ASP.NET trace
</summary>
<param name="loggingEvent">the event to log</param>
<remarks>
<para>
Write the logging event to the ASP.NET trace
<c>HttpContext.Current.Trace</c>
(<see cref="T:System.Web.TraceContext"/>).
</para>
</remarks>
</member>
<member name="F:log4net.Appender.AspNetTraceAppender.m_category">
<summary>
Defaults to %logger
</summary>
</member>
<member name="P:log4net.Appender.AspNetTraceAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.AspNetTraceAppender.Category">
<summary>
The category parameter sent to the Trace method.
</summary>
<remarks>
<para>
Defaults to %logger which will use the logger name of the current
<see cref="T:log4net.Core.LoggingEvent"/> as the category parameter.
</para>
<para>
</para>
</remarks>
</member>
<member name="T:log4net.Appender.BufferingForwardingAppender">
<summary>
Buffers events and then forwards them to attached appenders.
</summary>
<remarks>
<para>
The events are buffered in this appender until conditions are
met to allow the appender to deliver the events to the attached
appenders. See <see cref="T:log4net.Appender.BufferingAppenderSkelet
on"/> for the
conditions that cause the buffer to be sent.
</para>
<para>The forwarding appender can be used to specify different
thresholds and filters for the same appender at different locations
within the hierarchy.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Core.IAppenderAttachable">
<summary>
Interface for attaching appenders to objects.
</summary>
<remarks>
<para>
Interface for attaching, removing and retrieving appenders.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.IAppenderAttachable.AddAppender(log4net.App
ender.IAppender)">
<summary>
Attaches an appender.
</summary>
<param name="appender">The appender to add.</param>
<remarks>
<para>
Add the specified appender. The implementation may
choose to allow or deny duplicate appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IAppenderAttachable.GetAppender(System.Stri
ng)">
<summary>
Gets an attached appender with the specified name.
</summary>
<param name="name">The name of the appender to get.</param>
<returns>
The appender with the name specified, or <c>null</c> if no appender
with the
specified name is found.
</returns>
<remarks>
<para>
Returns an attached appender with the <paramref name="name"/> specif
ied.
If no appender with the specified name is found <c>null</c> will be
returned.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IAppenderAttachable.RemoveAllAppenders">
<summary>
Removes all attached appenders.
</summary>
<remarks>
<para>
Removes and closes all attached appenders
</para>
</remarks>
</member>
<member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(log4net.
Appender.IAppender)">
<summary>
Removes the specified appender from the list of attached appenders.
</summary>
<param name="appender">The appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(System.S
tring)">
<summary>
Removes the appender with the specified name from the list of append
ers.
</summary>
<param name="name">The name of the appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="P:log4net.Core.IAppenderAttachable.Appenders">
<summary>
Gets all attached appenders.
</summary>
<value>
A collection of attached appenders.
</value>
<remarks>
<para>
Gets a collection of attached appenders.
If there are no attached appenders the
implementation should return an empty
collection rather than <c>null</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Buff
eringForwardingAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.OnClose">
<summary>
Closes the appender and releases resources.
</summary>
<remarks>
<para>
Releases any resources allocated within the appender such as file ha
ndles,
network connections, etc.
</para>
<para>
It is a programming error to append to a closed appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.SendBuffer(
log4net.Core.LoggingEvent[])">
<summary>
Send the events.
</summary>
<param name="events">The events that need to be send.</param>
<remarks>
<para>
Forwards the events to the attached appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.AddAppender
(log4net.Appender.IAppender)">
<summary>
Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of ap
penders of this
instance.
</summary>
<param name="newAppender">The <see cref="T:log4net.Appender.IAppende
r"/> to add to this appender.</param>
<remarks>
<para>
If the specified <see cref="T:log4net.Appender.IAppender"/> is alrea
dy in the list of
appenders, then it won't be added again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.GetAppender
(System.String)">
<summary>
Looks for the appender with the specified name.
</summary>
<param name="name">The name of the appender to lookup.</param>
<returns>
The appender with the specified name, or <c>null</c>.
</returns>
<remarks>
<para>
Get the named appender attached to this buffering appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAllAp
penders">
<summary>
Removes all previously added appenders from this appender.
</summary>
<remarks>
<para>
This is useful when re-reading configuration information.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppen
der(log4net.Appender.IAppender)">
<summary>
Removes the specified appender from the list of appenders.
</summary>
<param name="appender">The appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</remarks>
</member>
<member name="M:log4net.Appender.BufferingForwardingAppender.RemoveAppen
der(System.String)">
<summary>
Removes the appender with the specified name from the list of append
ers.
</summary>
<param name="name">The name of the appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</remarks>
</member>
<member name="F:log4net.Appender.BufferingForwardingAppender.m_appenderA
ttachedImpl">
<summary>
Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"
/> interface
</summary>
</member>
<member name="P:log4net.Appender.BufferingForwardingAppender.Appenders">
<summary>
Gets the appenders contained in this appender as an
<see cref="T:System.Collections.ICollection"/>.
</summary>
<remarks>
If no appenders can be found, then an <see cref="T:log4net.Util.Empt
yCollection"/>
is returned.
</remarks>
<returns>
A collection of the appenders in this appender.
</returns>
</member>
<member name="T:log4net.Appender.ColoredConsoleAppender">
<summary>
Appends logging events to the console.
</summary>
<remarks>
<para>
ColoredConsoleAppender appends log events to the standard output str
eam
or the error output stream using a layout specified by the
user. It also allows the color of a specific type of message to be s
et.
</para>
<para>
By default, all output is written to the console's standard output s
tream.
The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> p
roperty can be set to direct the output to the
error stream.
</para>
<para>
NOTE: This appender writes directly to the application's attached co
nsole
not to the <c>System.Console.Out</c> or <c>System.Console.Error</c>
<c>TextWriter</c>.
The <c>System.Console.Out</c> and <c>System.Console.Error</c> stream
s can be
programmatically redirected (for example NUnit does this to capture
program output).
This appender will ignore these redirections because it needs to use
Win32
API calls to colorize the output. To respect these redirections the
<see cref="T:log4net.Appender.ConsoleAppender"/>
must be used.
</para>
<para>
When configuring the colored console appender, mapping should be
specified to map a logging level to a color. For example:
</para>
<code lang="XML" escaped="true">
<mapping>
<level value="ERROR"/>
<foreColor value="White"/>
<backColor value="Red, HighIntensity"/>
</mapping>
<mapping>
<level value="DEBUG"/>
<backColor value="Green"/>
</mapping>
</code>
<para>
The Level is the standard log4net logging level and ForeColor and Ba
ckColor can be any
combination of the following values:
<list type="bullet">
<item><term>Blue</term><description></description></item>
<item><term>Green</term><description></description></item>
<item><term>Red</term><description></description></item>
<item><term>White</term><description></description></item>
<item><term>Yellow</term><description></description></item>
<item><term>Purple</term><description></description></item>
<item><term>Cyan</term><description></description></item>
<item><term>HighIntensity</term><description></description></item>
</list>
</para>
</remarks>
<author>Rick Hobbs</author>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleOut">
<summary>
The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> t
o use when writing to the Console
standard output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> t
o use when writing to the Console
standard output stream.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleError">
<summary>
The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> t
o use when writing to the Console
standard error output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> t
o use when writing to the Console
standard error output stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Colo
redConsoleAppender"/> class.
</summary>
<remarks>
The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppe
nder"/> class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.La
yout.ILayout)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Colo
redConsoleAppender"/> class
with the specified layout.
</summary>
<param name="layout">the layout to use for this appender</param>
<remarks>
The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppe
nder"/> class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.La
yout.ILayout,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Colo
redConsoleAppender"/> class
with the specified layout.
</summary>
<param name="layout">the layout to use for this appender</param>
<param name="writeToErrorStream">flag set to <c>true</c> to write to
the console error stream</param>
<remarks>
When <paramref name="writeToErrorStream"/> is set to <c>true</c>, ou
tput is written to
the standard error output stream. Otherwise, output is written to t
he standard
output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.AddMapping(log4n
et.Appender.ColoredConsoleAppender.LevelColors)">
<summary>
Add a mapping of level to color - done by the config file
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Add a <see cref="T:log4net.Appender.ColoredConsoleAppender.LevelColo
rs"/> mapping to this appender.
Each mapping defines the foreground and background colors
for a level.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.Append(log4net.C
ore.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
log4net.Core.LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to the console.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.ActivateOptions"
>
<summary>
Initialize the options for this appender
</summary>
<remarks>
<para>
Initialize the level to color mappings set on this appender.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.m_writeToErrorSt
ream">
<summary>
Flag to write output to the error stream rather than the standard ou
tput stream
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.m_levelMapping">
<summary>
Mapping from level object to color value
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.m_consoleOutputW
riter">
<summary>
The console output stream writer to write to
</summary>
<remarks>
<para>
This writer is not thread safe.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ColoredConsoleAppender.Target">
<summary>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</summary>
<value>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</value>
<remarks>
<para>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ColoredConsoleAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.ColoredConsoleAppender.Colors">
<summary>
The enum of possible color values for use with the color mapping met
hod
</summary>
<remarks>
<para>
The following flags can be combined together to
form the colors.
</para>
</remarks>
<seealso cref="T:log4net.Appender.ColoredConsoleAppender"/>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Blue">
<summary>
color is blue
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Green">
<summary>
color is green
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Red">
<summary>
color is red
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.White">
<summary>
color is white
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Yellow">
<summary>
color is yellow
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Purple">
<summary>
color is purple
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Cyan">
<summary>
color is cyan
</summary>
</member>
<member name="F:log4net.Appender.ColoredConsoleAppender.Colors.HighInten
sity">
<summary>
color is intensified
</summary>
</member>
<member name="T:log4net.Appender.ColoredConsoleAppender.LevelColors">
<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.
</summary>
<remarks>
<para>
Defines the mapping between a level and the color it should be displ
ayed in.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ColoredConsoleAppender.LevelColors.Acti
vateOptions">
<summary>
Initialize the options for the object
</summary>
<remarks>
<para>
Combine the <see cref="P:log4net.Appender.ColoredConsoleAppender.Lev
elColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.L
evelColors.BackColor"/> together.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.Fore
Color">
<summary>
The mapped foreground color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped foreground color for the specified level.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.Back
Color">
<summary>
The mapped background color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped background color for the specified level.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.Comb
inedColor">
<summary>
The combined <see cref="P:log4net.Appender.ColoredConsoleAppender.Le
velColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.
LevelColors.BackColor"/> suitable for
setting the console color.
</summary>
</member>
<member name="T:log4net.Appender.ConsoleAppender">
<summary>
Appends logging events to the console.
</summary>
<remarks>
<para>
ConsoleAppender appends log events to the standard output stream
or the error output stream using a layout specified by the
user.
</para>
<para>
By default, all output is written to the console's standard output s
tream.
The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> property
can be set to direct the output to the
error stream.
</para>
<para>
NOTE: This appender writes each message to the <c>System.Console.Out
</c> or
<c>System.Console.Error</c> that is set at the time the event is app
ended.
Therefore it is possible to programmatically redirect the output of
this appender
(for example NUnit does this to capture program output). While this
is the desired
behavior of this appender it may have security implications in your
application.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Appender.ConsoleAppender.ConsoleOut">
<summary>
The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use w
hen writing to the Console
standard output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use w
hen writing to the Console
standard output stream.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.ConsoleAppender.ConsoleError">
<summary>
The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use w
hen writing to the Console
standard error output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use w
hen writing to the Console
standard error output stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ConsoleAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Cons
oleAppender"/> class.
</summary>
<remarks>
The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/>
class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.IL
ayout)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Cons
oleAppender"/> class
with the specified layout.
</summary>
<param name="layout">the layout to use for this appender</param>
<remarks>
The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/>
class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.IL
ayout,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Cons
oleAppender"/> class
with the specified layout.
</summary>
<param name="layout">the layout to use for this appender</param>
<param name="writeToErrorStream">flag set to <c>true</c> to write to
the console error stream</param>
<remarks>
When <paramref name="writeToErrorStream"/> is set to <c>true</c>, ou
tput is written to
the standard error output stream. Otherwise, output is written to t
he standard
output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ConsoleAppender.Append(log4net.Core.Log
gingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to the console.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ConsoleAppender.Target">
<summary>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</summary>
<value>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</value>
<remarks>
<para>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ConsoleAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.DebugAppender">
<summary>
Appends log events to the <see cref="T:System.Diagnostics.Debug"/> s
ystem.
</summary>
<remarks>
<para>
The application configuration file can be used to control what liste
ners
are actually used. See the MSDN documentation for the
<see cref="T:System.Diagnostics.Debug"/> class for details on config
uring the
debug system.
</para>
<para>
Events are written using the <see cref="M:System.Diagnostics.Debug.W
rite(string,string)"/>
method. The event's logger name is passed as the value for the categ
ory name to the Write method.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.DebugAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Debu
gAppender"/>.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.DebugAppender.#ctor(log4net.Layout.ILay
out)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Debu
gAppender"/>
with a specified layout.
</summary>
<param name="layout">The layout to use with this appender.</param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.DebugAppender.Append(log4net.Core.Loggi
ngEvent)">
<summary>
Writes the logging event to the <see cref="T:System.Diagnostics.Debu
g"/> system.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the logging event to the <see cref="T:System.Diagnostics.Debu
g"/> system.
If <see cref="P:log4net.Appender.DebugAppender.ImmediateFlush"/> is
<c>true</c> then the <see cref="M:System.Diagnostics.Debug.Flush"/>
is called.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.DebugAppender.m_immediateFlush">
<summary>
Immediate flush means that the underlying writer or output stream
will be flushed at the end of each append operation.
</summary>
<remarks>
<para>
Immediate flush is slower but ensures that each append request is
actually written. If <see cref="P:log4net.Appender.DebugAppender.Imm
ediateFlush"/> is set to
<c>false</c>, then there is a good chance that the last few
logs events are not actually written to persistent media if and
when the application crashes.
</para>
<para>
The default value is <c>true</c>.</para>
</remarks>
</member>
<member name="P:log4net.Appender.DebugAppender.ImmediateFlush">
<summary>
Gets or sets a value that indicates whether the appender will
flush at the end of each write.
</summary>
<remarks>
<para>The default behavior is to flush at the end of each
write. If the option is set to<c>false</c>, then the underlying
stream can defer writing to physical medium to a later time.
</para>
<para>
Avoiding the flush operation at the end of each append results
in a performance gain of 10 to 20 percent. However, there is safety
trade-off involved in skipping flushing. Indeed, when flushing is
skipped, then it is likely that the last few log events will not
be recorded on disk when the application exits. This is a high
price to pay even for a 20% performance gain.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.DebugAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.EventLogAppender">
<summary>
Writes events to the system event log.
</summary>
<remarks>
<para>
The appender will fail if you try to write using an event source tha
t doesn't exist unless it is running with local administrator privileges.
See also http://logging.apache.org/log4net/release/faq.html#trouble-
EventLog
</para>
<para>
The <c>EventID</c> of the event log entry can be
set using the <c>EventID</c> property (<see cref="P:log4net.Core.Log
gingEvent.Properties"/>)
on the <see cref="T:log4net.Core.LoggingEvent"/>.
</para>
<para>
The <c>Category</c> of the event log entry can be
set using the <c>Category</c> property (<see cref="P:log4net.Core.Lo
ggingEvent.Properties"/>)
on the <see cref="T:log4net.Core.LoggingEvent"/>.
</para>
<para>
There is a limit of 32K characters for an event log message
</para>
<para>
When configuring the EventLogAppender a mapping can be
specified to map a logging level to an event log entry type. For exa
mple:
</para>
<code lang="XML">
&lt;mapping&gt;
&lt;level value="ERROR" /&gt;
&lt;eventLogEntryType value="Error" /&gt;
&lt;/mapping&gt;
&lt;mapping&gt;
&lt;level value="DEBUG" /&gt;
&lt;eventLogEntryType value="Information" /&gt;
&lt;/mapping&gt;
</code>
<para>
The Level is the standard log4net logging level and eventLogEntryTyp
e can be any value
from the <see cref="T:System.Diagnostics.EventLogEntryType"/> enum,
i.e.:
<list type="bullet">
<item><term>Error</term><description>an error event</description></i
tem>
<item><term>Warning</term><description>a warning event</description>
</item>
<item><term>Information</term><description>an informational event</d
escription></item>
</list>
</para>
</remarks>
<author>Aspi Havewala</author>
<author>Douglas de la Torre</author>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Thomas Voss</author>
</member>
<member name="M:log4net.Appender.EventLogAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Even
tLogAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.#ctor(log4net.Layout.I
Layout)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Even
tLogAppender"/> class
with the specified <see cref="T:log4net.Layout.ILayout"/>.
</summary>
<param name="layout">The <see cref="T:log4net.Layout.ILayout"/> to u
se with this appender.</param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.AddMapping(log4net.App
ender.EventLogAppender.Level2EventLogEntryType)">
<summary>
Add a mapping of level to <see cref="T:System.Diagnostics.EventLogEn
tryType"/> - done by the config file
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Add a <see cref="T:log4net.Appender.EventLogAppender.Level2EventLogE
ntryType"/> mapping to this appender.
Each mapping defines the event log entry type for a level.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.EventLogAppende
r.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.EventLogAppender.Activ
ateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.EventLogAppender.ActivateOptions"/> mu
st be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.CreateEventSource(Syst
em.String,System.String,System.String)">
<summary>
Create an event log source
</summary>
<remarks>
Uses different API calls under NET_2_0
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.Append(log4net.Core.Lo
ggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/>
method.
</summary>
<param name="loggingEvent">the event to log</param>
<remarks>
<para>Writes the event to the system event log using the
<see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>.</
para>

<para>If the event has an <c>EventID</c> property (see <see cref="P:
log4net.Core.LoggingEvent.Properties"/>)
set then this integer will be used as the event log event id.</para>

<para>
There is a limit of 32K characters for an event log message
</para>
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.GetEntryType(log4net.C
ore.Level)">
<summary>
Get the equivalent <see cref="T:System.Diagnostics.EventLogEntryType
"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="level"/>
</summary>
<param name="level">the Level to convert to an EventLogEntryType</pa
ram>
<returns>The equivalent <see cref="T:System.Diagnostics.EventLogEntr
yType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="level"/></retu
rns>
<remarks>
Because there are fewer applicable <see cref="T:System.Diagnostics.E
ventLogEntryType"/>
values to use in logging levels than there are in the
<see cref="T:log4net.Core.Level"/> this is a one way mapping. There
is
a loss of information during the conversion.
</remarks>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_logName">
<summary>
The log name is the section in the event logs where the messages
are stored.
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_applicationName">
<summary>
Name of the application to use when logging. This appears in the
application column of the event log named by <see cref="F:log4net.Ap
pender.EventLogAppender.m_logName"/>.
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_machineName">
<summary>
The name of the machine which holds the event log. This is
currently only allowed to be '.' i.e. the current machine.
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_levelMapping">
<summary>
Mapping from level object to EventLogEntryType
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_securityContext">
<summary>
The security context to use for privileged calls
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_eventId">
<summary>
The event ID to use unless one is explicitly specified via the <c>Lo
ggingEvent</c>'s properties.
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.m_category">
<summary>
The event category to use unless one is explicitly specified via the
<c>LoggingEvent</c>'s properties.
</summary>
</member>
<member name="F:log4net.Appender.EventLogAppender.declaringType">
<summary>
The fully qualified type of the EventLogAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="F:log4net.Appender.EventLogAppender.MAX_EVENTLOG_MESSAGE_S
IZE_DEFAULT">
<summary>
The maximum size supported by default.
</summary>
<remarks>
http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx
The 32766 documented max size is two bytes shy of 32K (I'm assuming
32766
may leave space for a two byte null terminator of #0#0). The 32766 m
ax
length is what the .NET 4.0 source code checks for, but this is WRON
G!
Strings with a length > 31839 on Windows Vista or higher can CORRUPT

the event log! See: System.Diagnostics.EventLogInternal.InternalWrit
eEvent()
for the use of the 32766 max size.
</remarks>
</member>
<member name="F:log4net.Appender.EventLogAppender.MAX_EVENTLOG_MESSAGE_S
IZE_VISTA_OR_NEWER">
<summary>
The maximum size supported by a windows operating system that is vis
ta
or newer.
</summary>
<remarks>
See ReportEvent API:
http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx
ReportEvent's lpStrings parameter:
"A pointer to a buffer containing an array of
null-terminated strings that are merged into the message before Even
t Viewer
displays the string to the user. This parameter must be a valid poin
ter
(or NULL), even if wNumStrings is zero. Each string is limited to 31
,839 characters."

Going beyond the size of 31839 will (at some point) corrupt the even
t log on Windows
Vista or higher! It may succeed for a while...but you will eventuall
y run into the
error: "System.ComponentModel.Win32Exception : A device attached to
the system is
not functioning", and the event log will then be corrupt (I was able
to corrupt
an event log using a length of 31877 on Windows 7).

The max size for Windows Vista or higher is documented here:
http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx.
Going over this size may succeed a few times but the buffer will ove
rrun and
eventually corrupt the log (based on testing).

The maxEventMsgSize size is based on the max buffer size of the lpSt
rings parameter of the ReportEvent API.
The documented max size for EventLog.WriteEntry for Windows Vista an
d higher is 31839, but I'm leaving room for a
terminator of #0#0, as we cannot see the source of ReportEvent (thou
gh we could use an API monitor to examine the
buffer, given enough time).
</remarks>
</member>
<member name="F:log4net.Appender.EventLogAppender.MAX_EVENTLOG_MESSAGE_S
IZE">
<summary>
The maximum size that the operating system supports for
a event log message.
</summary>
<remarks>
Used to determine the maximum string length that can be written
to the operating system event log and eventually truncate a string
that exceeds the limits.
</remarks>
</member>
<member name="M:log4net.Appender.EventLogAppender.GetMaxEventLogMessageS
ize">
<summary>
This method determines the maximum event log message size allowed fo
r
the current environment.
</summary>
<returns></returns>
</member>
<member name="P:log4net.Appender.EventLogAppender.LogName">
<summary>
The name of the log where messages will be stored.
</summary>
<value>
The string name of the log where messages will be stored.
</value>
<remarks>
<para>This is the name of the log as it appears in the Event Viewer
tree. The default value is to log into the <c>Application</c>
log, this is where most applications write their events. However
if you need a separate log for your application (or applications)
then you should set the <see cref="P:log4net.Appender.EventLogAppend
er.LogName"/> appropriately.</para>
<para>This should not be used to distinguish your event log messages
from those of other applications, the <see cref="P:log4net.Appender.
EventLogAppender.ApplicationName"/>
property should be used to distinguish events. This property should
be
used to group together events into a single log.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.ApplicationName">
<summary>
Property used to set the Application name. This appears in the
event logs when logging.
</summary>
<value>
The string used to distinguish events from different sources.
</value>
<remarks>
Sets the event log source property.
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.MachineName">
<summary>
This property is used to return the name of the computer to use
when accessing the event logs. Currently, this is the current
computer, denoted by a dot "."
</summary>
<value>
The string name of the machine holding the event log that
will be logged into.
</value>
<remarks>
This property cannot be changed. It is currently set to '.'
i.e. the local machine. This may be changed in future.
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.SecurityContext">
<summary>
Gets or sets the <see cref="P:log4net.Appender.EventLogAppender.Secu
rityContext"/> used to write to the EventLog.
</summary>
<value>
The <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/
> used to write to the EventLog.
</value>
<remarks>
<para>
The system security context used to write to the EventLog.
</para>
<para>
Unless a <see cref="P:log4net.Appender.EventLogAppender.SecurityCont
ext"/> specified here for this appender
the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvide
r"/> is queried for the
security context to use. The default behavior is to use the security
context
of the current thread.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.EventId">
<summary>
Gets or sets the <c>EventId</c> to use unless one is explicitly spec
ified via the <c>LoggingEvent</c>'s properties.
</summary>
<remarks>
<para>
The <c>EventID</c> of the event log entry will normally be
set using the <c>EventID</c> property (<see cref="P:log4net.Core.Log
gingEvent.Properties"/>)
on the <see cref="T:log4net.Core.LoggingEvent"/>.
This property provides the fallback value which defaults to 0.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.Category">
<summary>
Gets or sets the <c>Category</c> to use unless one is explicitly spe
cified via the <c>LoggingEvent</c>'s properties.
</summary>
<remarks>
<para>
The <c>Category</c> of the event log entry will normally be
set using the <c>Category</c> property (<see cref="P:log4net.Core.Lo
ggingEvent.Properties"/>)
on the <see cref="T:log4net.Core.LoggingEvent"/>.
This property provides the fallback value which defaults to 0.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.EventLogAppender.Level2EventLogEntryTyp
e">
<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.
</summary>
<remarks>
<para>
Defines the mapping between a level and its event log entry type.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.EventLogAppender.Level2EventLogEntryTyp
e.EventLogEntryType">
<summary>
The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEnt
ryType.EventLogEntryType"/> for this entry
</summary>
<remarks>
<para>
Required property.
The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEnt
ryType.EventLogEntryType"/> for this entry
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender">
<summary>
Appends logging events to a file.
</summary>
<remarks>
<para>
Logging events are sent to the file specified by
the <see cref="P:log4net.Appender.FileAppender.File"/> property.
</para>
<para>
The file can be opened in either append or overwrite mode
by specifying the <see cref="P:log4net.Appender.FileAppender.AppendT
oFile"/> property.
If the file path is relative it is taken as relative from
the application base directory. The file encoding can be
specified by setting the <see cref="P:log4net.Appender.FileAppender.
Encoding"/> property.
</para>
<para>
The layout's <see cref="P:log4net.Layout.ILayout.Header"/> and <see
cref="P:log4net.Layout.ILayout.Footer"/>
values will be written each time the file is opened and closed
respectively. If the <see cref="P:log4net.Appender.FileAppender.Appe
ndToFile"/> property is <see langword="true"/>
then the file may contain multiple copies of the header and footer.
</para>
<para>
This appender will first try to open the file for writing when <see
cref="M:log4net.Appender.FileAppender.ActivateOptions"/>
is called. This will typically be during configuration.
If the file cannot be opened for writing the appender will attempt
to open the file again each time a message is logged to the appender
.
If the file cannot be opened for writing when a message is logged th
en
the message will be discarded by this appender.
</para>
<para>
The <see cref="T:log4net.Appender.FileAppender"/> supports pluggable
file locking models via
the <see cref="P:log4net.Appender.FileAppender.LockingModel"/> prope
rty.
The default behavior, implemented by <see cref="T:log4net.Appender.F
ileAppender.ExclusiveLock"/>
is to obtain an exclusive write lock on the file until this appender
is closed.
The alternative models only hold a
write lock while the appender is writing a logging event (<see cref=
"T:log4net.Appender.FileAppender.MinimalLock"/>)
or synchronize by using a named system wide Mutex (<see cref="T:log4
net.Appender.FileAppender.InterProcessLock"/>).
</para>
<para>
All locking strategies have issues and you should seriously consider
using a different strategy that
avoids having multiple processes logging to the same file.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Rodrigo B. de Oliveira</author>
<author>Douglas de la Torre</author>
<author>Niall Daley</author>
</member>
<member name="T:log4net.Appender.TextWriterAppender">
<summary>
Sends logging events to a <see cref="T:System.IO.TextWriter"/>.
</summary>
<remarks>
<para>
An Appender that writes to a <see cref="T:System.IO.TextWriter"/>.
</para>
<para>
This appender may be used stand alone if initialized with an appropr
iate
writer, however it is typically used as a base class for an appender
that
can open a <see cref="T:System.IO.TextWriter"/> to write to.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Douglas de la Torre</author>
</member>
<member name="M:log4net.Appender.TextWriterAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Text
WriterAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout
.ILayout,System.IO.Stream)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Text
WriterAppender"/> class and
sets the output destination to a new <see cref="T:System.IO.StreamWr
iter"/> initialized
with the specified <see cref="T:System.IO.Stream"/>.
</summary>
<param name="layout">The layout to use with this appender.</param>
<param name="os">The <see cref="T:System.IO.Stream"/> to output to.<
/param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout
.ILayout,System.IO.TextWriter)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Text
WriterAppender"/> class and sets
the output destination to the specified <see cref="T:System.IO.Strea
mWriter"/>.
</summary>
<param name="layout">The layout to use with this appender</param>
<param name="writer">The <see cref="T:System.IO.TextWriter"/> to out
put to</param>
<remarks>
The <see cref="T:System.IO.TextWriter"/> must have been previously o
pened.
</remarks>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.PreAppendCheck">
<summary>
This method determines if there is a sense in attempting to append.
</summary>
<remarks>
<para>
This method checks if an output target has been set and if a
layout has been set.
</para>
</remarks>
<returns><c>false</c> if any of the preconditions fail.</returns>
</member>
<member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.
LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/>
method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes a log statement to the output stream if the output stream exi
sts
and is writable.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.
LoggingEvent[])">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent[])"/>
method.
</summary>
<param name="loggingEvents">The array of events to log.</param>
<remarks>
<para>
This method writes all the bulk logged events to the output writer
before flushing the stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.OnClose">
<summary>
Close this appender instance. The underlying stream or writer is als
o closed.
</summary>
<remarks>
Closed appenders cannot be reused.
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.WriteFooterAndCloseW
riter">
<summary>
Writes the footer and closes the underlying <see cref="T:System.IO.T
extWriter"/>.
</summary>
<remarks>
<para>
Writes the footer and closes the underlying <see cref="T:System.IO.T
extWriter"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.CloseWriter">
<summary>
Closes the underlying <see cref="T:System.IO.TextWriter"/>.
</summary>
<remarks>
<para>
Closes the underlying <see cref="T:System.IO.TextWriter"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.Reset">
<summary>
Clears internal references to the underlying <see cref="T:System.IO.
TextWriter"/>
and other variables.
</summary>
<remarks>
<para>
Subclasses can override this method for an alternate closing behavio
r.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.WriteFooter">
<summary>
Writes a footer as produced by the embedded layout's <see cref="P:lo
g4net.Layout.ILayout.Footer"/> property.
</summary>
<remarks>
<para>
Writes a footer as produced by the embedded layout's <see cref="P:lo
g4net.Layout.ILayout.Footer"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.WriteHeader">
<summary>
Writes a header produced by the embedded layout's <see cref="P:log4n
et.Layout.ILayout.Header"/> property.
</summary>
<remarks>
<para>
Writes a header produced by the embedded layout's <see cref="P:log4n
et.Layout.ILayout.Header"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TextWriterAppender.PrepareWriter">
<summary>
Called to allow a subclass to lazily initialize the writer
</summary>
<remarks>
<para>
This method is called when an event is logged and the <see cref="P:l
og4net.Appender.TextWriterAppender.Writer"/> or
<see cref="P:log4net.Appender.TextWriterAppender.QuietWriter"/> have
not been set. This allows a subclass to
attempt to initialize the writer multiple times.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.TextWriterAppender.m_qtw">
<summary>
This is the <see cref="T:log4net.Util.QuietTextWriter"/> where loggi
ng events
will be written to.
</summary>
</member>
<member name="F:log4net.Appender.TextWriterAppender.m_immediateFlush">
<summary>
Immediate flush means that the underlying <see cref="T:System.IO.Tex
tWriter"/>
or output stream will be flushed at the end of each append operation
.
</summary>
<remarks>
<para>
Immediate flush is slower but ensures that each append request is
actually written. If <see cref="P:log4net.Appender.TextWriterAppende
r.ImmediateFlush"/> is set to
<c>false</c>, then there is a good chance that the last few
logging events are not actually persisted if and when the applicatio
n
crashes.
</para>
<para>
The default value is <c>true</c>.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.TextWriterAppender.declaringType">
<summary>
The fully qualified type of the TextWriterAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Appender.TextWriterAppender.ImmediateFlush">
<summary>
Gets or set whether the appender will flush at the end
of each append operation.
</summary>
<value>
<para>
The default behavior is to flush at the end of each
append operation.
</para>
<para>
If this option is set to <c>false</c>, then the underlying
stream can defer persisting the logging event to a later
time.
</para>
</value>
<remarks>
Avoiding the flush operation at the end of each append results in
a performance gain of 10 to 20 percent. However, there is safety
trade-off involved in skipping flushing. Indeed, when flushing is
skipped, then it is likely that the last few log events will not
be recorded on disk when the application exits. This is a high
price to pay even for a 20% performance gain.
</remarks>
</member>
<member name="P:log4net.Appender.TextWriterAppender.Writer">
<summary>
Sets the <see cref="T:System.IO.TextWriter"/> where the log output w
ill go.
</summary>
<remarks>
<para>
The specified <see cref="T:System.IO.TextWriter"/> must be open and
writable.
</para>
<para>
The <see cref="T:System.IO.TextWriter"/> will be closed when the app
ender
instance is closed.
</para>
<para>
<b>Note:</b> Logging to an unopened <see cref="T:System.IO.TextWrite
r"/> will fail.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TextWriterAppender.ErrorHandler">
<summary>
Gets or set the <see cref="T:log4net.Core.IErrorHandler"/> and the u
nderlying
<see cref="T:log4net.Util.QuietTextWriter"/>, if any, for this appen
der.
</summary>
<value>
The <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
</value>
</member>
<member name="P:log4net.Appender.TextWriterAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TextWriterAppender.QuietWriter">
<summary>
Gets or sets the <see cref="T:log4net.Util.QuietTextWriter"/> where
logging events
will be written to.
</summary>
<value>
The <see cref="T:log4net.Util.QuietTextWriter"/> where logging event
s are written.
</value>
<remarks>
<para>
This is the <see cref="T:log4net.Util.QuietTextWriter"/> where loggi
ng events
will be written to.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayo
ut,System.String,System.Boolean)">
<summary>
Construct a new appender using the layout, file and append mode.
</summary>
<param name="layout">the layout to use with this appender</param>
<param name="filename">the full path to the file to write to</param>
<param name="append">flag to indicate if the file should be appended
to</param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayo
ut,System.String)">
<summary>
Construct a new appender using the layout and file specified.
The file will be appended to.
</summary>
<param name="layout">the layout to use with this appender</param>
<param name="filename">the full path to the file to write to</param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ActivateOptions">
<summary>
Activate the options on the file appender.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.FileAppender.Ac
tivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.FileAppender.ActivateO
ptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> must b
e called again.
</para>
<para>
This will cause the file to be opened.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.Reset">
<summary>
Closes any previously opened file and calls the parent's <see cref="
M:log4net.Appender.TextWriterAppender.Reset"/>.
</summary>
<remarks>
<para>
Resets the filename and the file stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.PrepareWriter">
<summary>
Called to initialize the file writer
</summary>
<remarks>
<para>
Will be called for each logged message until the file is
successfully opened.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.Append(log4net.Core.Loggin
gEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/>
method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes a log statement to the output stream if the output stream exi
sts
and is writable.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.Append(log4net.Core.Loggin
gEvent[])">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent[])"/>
method.
</summary>
<param name="loggingEvents">The array of events to log.</param>
<remarks>
<para>
Acquires the output file locks once before writing all the events to
the stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.WriteFooter">
<summary>
Writes a footer as produced by the embedded layout's <see cref="P:lo
g4net.Layout.ILayout.Footer"/> property.
</summary>
<remarks>
<para>
Writes a footer as produced by the embedded layout's <see cref="P:lo
g4net.Layout.ILayout.Footer"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.WriteHeader">
<summary>
Writes a header produced by the embedded layout's <see cref="P:log4n
et.Layout.ILayout.Header"/> property.
</summary>
<remarks>
<para>
Writes a header produced by the embedded layout's <see cref="P:log4n
et.Layout.ILayout.Header"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.CloseWriter">
<summary>
Closes the underlying <see cref="T:System.IO.TextWriter"/>.
</summary>
<remarks>
<para>
Closes the underlying <see cref="T:System.IO.TextWriter"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.CloseFile">
<summary>
Closes the previously opened file.
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Layout.ILayout.Footer"/> to the file
and then
closes the file.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.SafeOpenFile(System.String
,System.Boolean)">
<summary>
Sets and <i>opens</i> the file where the log output will go. The spe
cified file must be writable.
</summary>
<param name="fileName">The path to the log file. Must be a fully qua
lified path.</param>
<param name="append">If true will append to fileName. Otherwise will
truncate fileName</param>
<remarks>
<para>
Calls <see cref="M:log4net.Appender.FileAppender.OpenFile(System.Str
ing,System.Boolean)"/> but guarantees not to throw an exception.
Errors are passed to the <see cref="P:log4net.Appender.TextWriterApp
ender.ErrorHandler"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.OpenFile(System.String,Sys
tem.Boolean)">
<summary>
Sets and <i>opens</i> the file where the log output will go. The spe
cified file must be writable.
</summary>
<param name="fileName">The path to the log file. Must be a fully qua
lified path.</param>
<param name="append">If true will append to fileName. Otherwise will
truncate fileName</param>
<remarks>
<para>
If there was already an opened file, then the previous file
is closed first.
</para>
<para>
This method will ensure that the directory structure
for the <paramref name="fileName"/> specified exists.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.St
ream)">
<summary>
Sets the quiet writer used for file output
</summary>
<param name="fileStream">the file stream that has been opened for wr
iting</param>
<remarks>
<para>
This implementation of <see cref="M:SetQWForFiles(Stream)"/> creates
a <see cref="T:System.IO.StreamWriter"/>
over the <paramref name="fileStream"/> and passes it to the
<see cref="M:SetQWForFiles(TextWriter)"/> method.
</para>
<para>
This method can be overridden by sub classes that want to wrap the
<see cref="T:System.IO.Stream"/> in some way, for example to encrypt
the output
data using a <c>System.Security.Cryptography.CryptoStream</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Te
xtWriter)">
<summary>
Sets the quiet writer being used.
</summary>
<param name="writer">the writer over the file stream that has been o
pened for writing</param>
<remarks>
<para>
This method can be overridden by sub classes that want to
wrap the <see cref="T:System.IO.TextWriter"/> in some way.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ConvertToFullPath(System.S
tring)">
<summary>
Convert a path into a fully qualified path.
</summary>
<param name="path">The path to convert.</param>
<returns>The fully qualified path.</returns>
<remarks>
<para>
Converts the path specified to a fully
qualified path. If the path is relative it is
taken as relative from the application base
directory.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.FileAppender.m_appendToFile">
<summary>
Flag to indicate if we should append to the file
or overwrite the file. The default is to append.
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.m_fileName">
<summary>
The name of the log file.
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.m_encoding">
<summary>
The encoding to use for the file stream.
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.m_securityContext">
<summary>
The security context to use for privileged calls
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.m_stream">
<summary>
The stream to log to. Has added locking semantics
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.m_lockingModel">
<summary>
The locking model to use
</summary>
</member>
<member name="F:log4net.Appender.FileAppender.declaringType">
<summary>
The fully qualified type of the FileAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Appender.FileAppender.File">
<summary>
Gets or sets the path to the file that logging will be written to.
</summary>
<value>
The path to the file that logging will be written to.
</value>
<remarks>
<para>
If the path is relative it is taken as relative from
the application base directory.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.FileAppender.AppendToFile">
<summary>
Gets or sets a flag that indicates whether the file should be
appended to or overwritten.
</summary>
<value>
Indicates whether the file should be appended to or overwritten.
</value>
<remarks>
<para>
If the value is set to false then the file will be overwritten, if
it is set to true then the file will be appended to.
</para>
The default value is true.
</remarks>
</member>
<member name="P:log4net.Appender.FileAppender.Encoding">
<summary>
Gets or sets <see cref="P:log4net.Appender.FileAppender.Encoding"/>
used to write to the file.
</summary>
<value>
The <see cref="P:log4net.Appender.FileAppender.Encoding"/> used to w
rite to the file.
</value>
<remarks>
<para>
The default encoding set is <see cref="P:System.Text.Encoding.Defaul
t"/>
which is the encoding for the system's current ANSI code page.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.FileAppender.SecurityContext">
<summary>
Gets or sets the <see cref="P:log4net.Appender.FileAppender.Security
Context"/> used to write to the file.
</summary>
<value>
The <see cref="P:log4net.Appender.FileAppender.SecurityContext"/> us
ed to write to the file.
</value>
<remarks>
<para>
Unless a <see cref="P:log4net.Appender.FileAppender.SecurityContext"
/> specified here for this appender
the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvide
r"/> is queried for the
security context to use. The default behavior is to use the security
context
of the current thread.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.FileAppender.LockingModel">
<summary>
Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingM
odel"/> used to handle locking of the file.
</summary>
<value>
The <see cref="P:log4net.Appender.FileAppender.LockingModel"/> used
to lock the file.
</value>
<remarks>
<para>
Gets or sets the <see cref="P:log4net.Appender.FileAppender.LockingM
odel"/> used to handle locking of the file.
</para>
<para>
There are three built in locking models, <see cref="T:log4net.Append
er.FileAppender.ExclusiveLock"/>, <see cref="T:log4net.Appender.FileAppender.Min
imalLock"/> and <see cref="T:log4net.Appender.FileAppender.InterProcessLock"/> .
The first locks the file from the start of logging to the end, the
second locks only for the minimal amount of time when logging each m
essage
and the last synchronizes processes using a named system wide Mutex.
</para>
<para>
The default locking model is the <see cref="T:log4net.Appender.FileA
ppender.ExclusiveLock"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender.LockingStream">
<summary>
Write only <see cref="T:System.IO.Stream"/> that uses the <see cref=
"T:log4net.Appender.FileAppender.LockingModelBase"/>
to manage access to an underlying resource.
</summary>
</member>
<member name="M:log4net.Appender.FileAppender.LockingStream.BeginWrite(S
ystem.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
<summary>
True asynchronous writes are not supported, the implementation force
s a synchronous write.
</summary>
</member>
<member name="T:log4net.Core.LogException">
<summary>
Exception base type for log4net.
</summary>
<remarks>
<para>
This type extends <see cref="T:System.ApplicationException"/>. It
does not add any new functionality but does differentiate the
type of exception being thrown.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.LogException.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.LogExcep
tion"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogException.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="message">A message to include with the exception.</para
m>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.LogExcep
tion"/> class with
the specified message.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogException.#ctor(System.String,System.Exc
eption)">
<summary>
Constructor
</summary>
<param name="message">A message to include with the exception.</para
m>
<param name="innerException">A nested exception to include.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.LogExcep
tion"/> class
with the specified message and inner exception.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogException.#ctor(System.Runtime.Serializa
tion.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialization constructor
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> that holds the serialized object data about the exception bein
g thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.
StreamingContext"/> that contains contextual information about the source or des
tination.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.LogExcep
tion"/> class
with serialized data.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender.LockingModelBase">
<summary>
Locking model base class
</summary>
<remarks>
<para>
Base class for the locking models available to the <see cref="T:log4
net.Appender.FileAppender"/> derived loggers.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(
System.String,System.Boolean,System.Text.Encoding)">
<summary>
Open the output file
</summary>
<param name="filename">The filename to use</param>
<param name="append">Whether to append to the file, or overwrite</pa
ram>
<param name="encoding">The encoding to use</param>
<remarks>
<para>
Open the file specified and prepare for logging.
No writes will be made until <see cref="M:log4net.Appender.FileAppen
der.LockingModelBase.AcquireLock"/> is called.
Must be called before any calls to <see cref="M:log4net.Appender.Fil
eAppender.LockingModelBase.AcquireLock"/>,
<see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseL
ock"/> and <see cref="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile
"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile
">
<summary>
Close the file
</summary>
<remarks>
<para>
Close the file. No further writes will be made.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLo
ck">
<summary>
Acquire the lock on the file
</summary>
<returns>A stream that is ready to be written to.</returns>
<remarks>
<para>
Acquire the lock on the file in preparation for writing to it.
Return a stream pointing to the file. <see cref="M:log4net.Appender.
FileAppender.LockingModelBase.ReleaseLock"/>
must be called to release the lock on the output file.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLo
ck">
<summary>
Release the lock on the file
</summary>
<remarks>
<para>
Release the lock on the file. No further writes will be made to the
stream until <see cref="M:log4net.Appender.FileAppender.LockingModel
Base.AcquireLock"/> is called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.CreateStr
eam(System.String,System.Boolean,System.IO.FileShare)">
<summary>
Helper method that creates a FileStream under CurrentAppender's Secu
rityContext.
</summary>
<remarks>
<para>
Typically called during OpenFile or AcquireLock.
</para>
<para>
If the directory portion of the <paramref name="filename"/> does not
exist, it is created
via Directory.CreateDirecctory.
</para>
</remarks>
<param name="filename"></param>
<param name="append"></param>
<param name="fileShare"></param>
<returns></returns>
</member>
<member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseStre
am(System.IO.Stream)">
<summary>
Helper method to close <paramref name="stream"/> under CurrentAppend
er's SecurityContext.
</summary>
<remarks>
Does not set <paramref name="stream"/> to null.
</remarks>
<param name="stream"></param>
</member>
<member name="P:log4net.Appender.FileAppender.LockingModelBase.CurrentAp
pender">
<summary>
Gets or sets the <see cref="T:log4net.Appender.FileAppender"/> for t
his LockingModel
</summary>
<value>
The <see cref="T:log4net.Appender.FileAppender"/> for this LockingMo
del
</value>
<remarks>
<para>
The file appender this locking model is attached to and working on
behalf of.
</para>
<para>
The file appender is used to locate the security context and the err
or handler to use.
</para>
<para>
The value of this property will be set before <see cref="M:log4net.A
ppender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,Syst
em.Text.Encoding)"/> is
called.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender.ExclusiveLock">
<summary>
Hold an exclusive lock on the output file
</summary>
<remarks>
<para>
Open the file once for writing and hold it open until <see cref="M:l
og4net.Appender.FileAppender.ExclusiveLock.CloseFile"/> is called.
Maintains an exclusive lock on the file during this time.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ExclusiveLock.OpenFile(Sys
tem.String,System.Boolean,System.Text.Encoding)">
<summary>
Open the file specified and prepare for logging.
</summary>
<param name="filename">The filename to use</param>
<param name="append">Whether to append to the file, or overwrite</pa
ram>
<param name="encoding">The encoding to use</param>
<remarks>
<para>
Open the file specified and prepare for logging.
No writes will be made until <see cref="M:log4net.Appender.FileAppen
der.ExclusiveLock.AcquireLock"/> is called.
Must be called before any calls to <see cref="M:log4net.Appender.Fil
eAppender.ExclusiveLock.AcquireLock"/>,
<see cref="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock
"/> and <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile">
<summary>
Close the file
</summary>
<remarks>
<para>
Close the file. No further writes will be made.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"
>
<summary>
Acquire the lock on the file
</summary>
<returns>A stream that is ready to be written to.</returns>
<remarks>
<para>
Does nothing. The lock is already taken
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock"
>
<summary>
Release the lock on the file
</summary>
<remarks>
<para>
Does nothing. The lock will be released when the file is closed.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender.MinimalLock">
<summary>
Acquires the file lock for each write
</summary>
<remarks>
<para>
Opens the file once for each <see cref="M:log4net.Appender.FileAppen
der.MinimalLock.AcquireLock"/>/<see cref="M:log4net.Appender.FileAppender.Minima
lLock.ReleaseLock"/> cycle,
thus holding the lock for the minimal amount of time. This method of
locking
is considerably slower than <see cref="T:log4net.Appender.FileAppend
er.ExclusiveLock"/> but allows
other processes to move/delete the log file whilst logging continues
.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.MinimalLock.OpenFile(Syste
m.String,System.Boolean,System.Text.Encoding)">
<summary>
Prepares to open the file when the first message is logged.
</summary>
<param name="filename">The filename to use</param>
<param name="append">Whether to append to the file, or overwrite</pa
ram>
<param name="encoding">The encoding to use</param>
<remarks>
<para>
Open the file specified and prepare for logging.
No writes will be made until <see cref="M:log4net.Appender.FileAppen
der.MinimalLock.AcquireLock"/> is called.
Must be called before any calls to <see cref="M:log4net.Appender.Fil
eAppender.MinimalLock.AcquireLock"/>,
<see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/
> and <see cref="M:log4net.Appender.FileAppender.MinimalLock.CloseFile"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.MinimalLock.CloseFile">
<summary>
Close the file
</summary>
<remarks>
<para>
Close the file. No further writes will be made.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock">
<summary>
Acquire the lock on the file
</summary>
<returns>A stream that is ready to be written to.</returns>
<remarks>
<para>
Acquire the lock on the file in preparation for writing to it.
Return a stream pointing to the file. <see cref="M:log4net.Appender.
FileAppender.MinimalLock.ReleaseLock"/>
must be called to release the lock on the output file.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock">
<summary>
Release the lock on the file
</summary>
<remarks>
<para>
Release the lock on the file. No further writes will be made to the
stream until <see cref="M:log4net.Appender.FileAppender.MinimalLock.
AcquireLock"/> is called again.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.FileAppender.InterProcessLock">
<summary>
Provides cross-process file locking.
</summary>
<author>Ron Grabowski</author>
<author>Steve Wranovsky</author>
</member>
<member name="M:log4net.Appender.FileAppender.InterProcessLock.OpenFile(
System.String,System.Boolean,System.Text.Encoding)">
<summary>
Open the file specified and prepare for logging.
</summary>
<param name="filename">The filename to use</param>
<param name="append">Whether to append to the file, or overwrite</pa
ram>
<param name="encoding">The encoding to use</param>
<remarks>
<para>
Open the file specified and prepare for logging.
No writes will be made until <see cref="M:log4net.Appender.FileAppen
der.InterProcessLock.AcquireLock"/> is called.
Must be called before any calls to <see cref="M:log4net.Appender.Fil
eAppender.InterProcessLock.AcquireLock"/>,
-<see cref="M:log4net.Appender.FileAppender.InterProcessLock.Release
Lock"/> and <see cref="M:log4net.Appender.FileAppender.InterProcessLock.CloseFil
e"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.InterProcessLock.CloseFile
">
<summary>
Close the file
</summary>
<remarks>
<para>
Close the file. No further writes will be made.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLo
ck">
<summary>
Acquire the lock on the file
</summary>
<returns>A stream that is ready to be written to.</returns>
<remarks>
<para>
Does nothing. The lock is already taken
</para>
</remarks>
</member>
<member name="M:log4net.Appender.FileAppender.InterProcessLock.ReleaseLo
ck">
<summary>

</summary>
</member>
<member name="T:log4net.Appender.ForwardingAppender">
<summary>
This appender forwards logging events to attached appenders.
</summary>
<remarks>
<para>
The forwarding appender can be used to specify different thresholds
and filters for the same appender at different locations within the
hierarchy.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Appender.ForwardingAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Forw
ardingAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.OnClose">
<summary>
Closes the appender and releases resources.
</summary>
<remarks>
<para>
Releases any resources allocated within the appender such as file ha
ndles,
network connections, etc.
</para>
<para>
It is a programming error to append to a closed appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.
LoggingEvent)">
<summary>
Forward the logging event to the attached appenders
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Delivers the logging event to all the attached appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.Append(log4net.Core.
LoggingEvent[])">
<summary>
Forward the logging events to the attached appenders
</summary>
<param name="loggingEvents">The array of events to log.</param>
<remarks>
<para>
Delivers the logging events to all the attached appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.AddAppender(log4net.
Appender.IAppender)">
<summary>
Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of ap
penders of this
instance.
</summary>
<param name="newAppender">The <see cref="T:log4net.Appender.IAppende
r"/> to add to this appender.</param>
<remarks>
<para>
If the specified <see cref="T:log4net.Appender.IAppender"/> is alrea
dy in the list of
appenders, then it won't be added again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.GetAppender(System.S
tring)">
<summary>
Looks for the appender with the specified name.
</summary>
<param name="name">The name of the appender to lookup.</param>
<returns>
The appender with the specified name, or <c>null</c>.
</returns>
<remarks>
<para>
Get the named appender attached to this appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.RemoveAllAppenders">
<summary>
Removes all previously added appenders from this appender.
</summary>
<remarks>
<para>
This is useful when re-reading configuration information.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(log4n
et.Appender.IAppender)">
<summary>
Removes the specified appender from the list of appenders.
</summary>
<param name="appender">The appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</remarks>
</member>
<member name="M:log4net.Appender.ForwardingAppender.RemoveAppender(Syste
m.String)">
<summary>
Removes the appender with the specified name from the list of append
ers.
</summary>
<param name="name">The name of the appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</remarks>
</member>
<member name="F:log4net.Appender.ForwardingAppender.m_appenderAttachedIm
pl">
<summary>
Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"
/> interface
</summary>
</member>
<member name="P:log4net.Appender.ForwardingAppender.Appenders">
<summary>
Gets the appenders contained in this appender as an
<see cref="T:System.Collections.ICollection"/>.
</summary>
<remarks>
If no appenders can be found, then an <see cref="T:log4net.Util.Empt
yCollection"/>
is returned.
</remarks>
<returns>
A collection of the appenders in this appender.
</returns>
</member>
<member name="T:log4net.Appender.LocalSyslogAppender">
<summary>
Logs events to a local syslog service.
</summary>
<remarks>
<note>
This appender uses the POSIX libc library functions <c>openlog</c>,
<c>syslog</c>, and <c>closelog</c>.
If these functions are not available on the local system then this a
ppender will not work!
</note>
<para>
The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are
specified in SUSv2 and
POSIX 1003.1-2001 standards. These are used to log messages to the l
ocal syslog service.
</para>
<para>
This appender talks to a local syslog service. If you need to log to
a remote syslog
daemon and you cannot configure your local syslog service to do this
you may be
able to use the <see cref="T:log4net.Appender.RemoteSyslogAppender"/
> to log via UDP.
</para>
<para>
Syslog messages must have a facility and and a severity. The severit
y
is derived from the Level of the logging event.
The facility must be chosen from the set of defined syslog
<see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/>
values. The facilities list is predefined
and cannot be extended.
</para>
<para>
An identifier is specified with each log message. This can be specif
ied
by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Ide
ntity"/> property. The identity (also know
as the tag) must not contain white space. The default value for the
identity is the application name (from <see cref="P:log4net.Util.Sys
temInfo.ApplicationFriendlyName"/>).
</para>
</remarks>
<author>Rob Lyon</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Loca
lSyslogAppender"/> class.
</summary>
<remarks>
This instance of the <see cref="T:log4net.Appender.LocalSyslogAppend
er"/> class is set up to write
to a local syslog service.
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.
Appender.LocalSyslogAppender.LevelSeverity)">
<summary>
Add a mapping of level to severity
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Adds a <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeveri
ty"/> to this appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.LocalSyslogAppe
nder.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.LocalSyslogAppender.Ac
tivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/>
must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.Append(log4net.Core
.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to a remote syslog daemon.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.OnClose">
<summary>
Close the syslog when the appender is closed
</summary>
<remarks>
<para>
Close the syslog when the appender is closed
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.GetSeverity(log4net
.Core.Level)">
<summary>
Translates a log4net level to a syslog severity.
</summary>
<param name="level">A log4net level.</param>
<returns>A syslog severity.</returns>
<remarks>
<para>
Translates a log4net level to a syslog severity.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.GeneratePriority(lo
g4net.Appender.LocalSyslogAppender.SyslogFacility,log4net.Appender.LocalSyslogAp
pender.SyslogSeverity)">
<summary>
Generate a syslog priority.
</summary>
<param name="facility">The syslog facility.</param>
<param name="severity">The syslog severity.</param>
<returns>A syslog priority.</returns>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.m_facility">
<summary>
The facility. The default facility is <see cref="F:log4net.Appender.
LocalSyslogAppender.SyslogFacility.User"/>.
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.m_identity">
<summary>
The message identity
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.m_handleToIdentity"
>
<summary>
Marshaled handle to the identity string. We have to hold on to the
string as the <c>openlog</c> and <c>syslog</c> APIs just hold the
pointer to the ident and dereference it for each log message.
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.m_levelMapping">
<summary>
Mapping from level object to syslog severity
</summary>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.openlog(System.IntP
tr,System.Int32,log4net.Appender.LocalSyslogAppender.SyslogFacility)">
<summary>
Open connection to system logger.
</summary>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.syslog(System.Int32
,System.String,System.String)">
<summary>
Generate a log message.
</summary>
<remarks>
<para>
The libc syslog method takes a format string and a variable argument
list similar
to the classic printf function. As this type of vararg list is not s
upported
by C# we need to specify the arguments explicitly. Here we have spec
ified the
format string with a single message argument. The caller must set th
e format
string to <c>"%s"</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.LocalSyslogAppender.closelog">
<summary>
Close descriptor used to write to system logger.
</summary>
</member>
<member name="P:log4net.Appender.LocalSyslogAppender.Identity">
<summary>
Message identity
</summary>
<remarks>
<para>
An identifier is specified with each log message. This can be specif
ied
by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Ide
ntity"/> property. The identity (also know
as the tag) must not contain white space. The default value for the
identity is the application name (from <see cref="P:log4net.Util.Sys
temInfo.ApplicationFriendlyName"/>).
</para>
</remarks>
</member>
<member name="P:log4net.Appender.LocalSyslogAppender.Facility">
<summary>
Syslog facility
</summary>
<remarks>
Set to one of the <see cref="T:log4net.Appender.LocalSyslogAppender.
SyslogFacility"/> values. The list of
facilities is predefined and cannot be extended. The default value
is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.
User"/>.
</remarks>
</member>
<member name="P:log4net.Appender.LocalSyslogAppender.RequiresLayout">
<summary>
This appender requires a <see cref="P:log4net.Appender.AppenderSkele
ton.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="P:log4net.Appender.AppenderSkele
ton.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.LocalSyslogAppender.SyslogSeverity">
<summary>
syslog severities
</summary>
<remarks>
<para>
The log4net Level maps to a syslog severity using the
<see cref="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net
.Appender.LocalSyslogAppender.LevelSeverity)"/> method and the <see cref="T:log4
net.Appender.LocalSyslogAppender.LevelSeverity"/>
class. The severity is set on <see cref="P:log4net.Appender.LocalSys
logAppender.LevelSeverity.Severity"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Emer
gency">
<summary>
system is unusable
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Aler
t">
<summary>
action must be taken immediately
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Crit
ical">
<summary>
critical conditions
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Erro
r">
<summary>
error conditions
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Warn
ing">
<summary>
warning conditions
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Noti
ce">
<summary>
normal but significant condition
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Info
rmational">
<summary>
informational
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogSeverity.Debu
g">
<summary>
debug-level messages
</summary>
</member>
<member name="T:log4net.Appender.LocalSyslogAppender.SyslogFacility">
<summary>
syslog facilities
</summary>
<remarks>
<para>
The syslog facility defines which subsystem the logging comes from.
This is set on the <see cref="P:log4net.Appender.LocalSyslogAppender
.Facility"/> property.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Kern
el">
<summary>
kernel messages
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User
">
<summary>
random user-level messages
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Mail
">
<summary>
mail system
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Daem
ons">
<summary>
system daemons
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Auth
orization">
<summary>
security/authorization messages
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Sysl
og">
<summary>
messages generated internally by syslogd
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Prin
ter">
<summary>
line printer subsystem
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.News
">
<summary>
network news subsystem
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Uucp
">
<summary>
UUCP subsystem
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Cloc
k">
<summary>
clock (cron/at) daemon
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Auth
orization2">
<summary>
security/authorization messages (private)
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ftp"
>
<summary>
ftp daemon
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Ntp"
>
<summary>
NTP subsystem
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Audi
t">
<summary>
log audit
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Aler
t">
<summary>
log alert
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Cloc
k2">
<summary>
clock daemon
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l0">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l1">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l2">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l3">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l4">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l5">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l6">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.Loca
l7">
<summary>
reserved for local use
</summary>
</member>
<member name="T:log4net.Appender.LocalSyslogAppender.LevelSeverity">
<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.
</summary>
<remarks>
<para>
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.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.LocalSyslogAppender.LevelSeverity.Sever
ity">
<summary>
The mapped syslog severity for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped syslog severity for the specified level
</para>
</remarks>
</member>
<member name="T:log4net.Appender.ManagedColoredConsoleAppender">
<summary>
Appends colorful logging events to the console, using the .NET 2
built-in capabilities.
</summary>
<remarks>
<para>
ManagedColoredConsoleAppender appends log events to the standard out
put stream
or the error output stream using a layout specified by the
user. It also allows the color of a specific type of message to be s
et.
</para>
<para>
By default, all output is written to the console's standard output s
tream.
The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Targ
et"/> property can be set to direct the output to the
error stream.
</para>
<para>
When configuring the colored console appender, mappings should be
specified to map logging levels to colors. For example:
</para>
<code lang="XML" escaped="true">
<mapping>
<level value="ERROR"/>
<foreColor value="DarkRed"/>
<backColor value="White"/>
</mapping>
<mapping>
<level value="WARN"/>
<foreColor value="Yellow"/>
</mapping>
<mapping>
<level value="INFO"/>
<foreColor value="White"/>
</mapping>
<mapping>
<level value="DEBUG"/>
<foreColor value="Blue"/>
</mapping>
</code>
<para>
The Level is the standard log4net logging level while
ForeColor and BackColor are the values of <see cref="T:System.Consol
eColor"/>
enumeration.
</para>
<para>
Based on the ColoredConsoleAppender
</para>
</remarks>
<author>Rick Hobbs</author>
<author>Nicko Cadell</author>
<author>Pavlos Touboulidis</author>
</member>
<member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleOu
t">
<summary>
The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Targ
et"/> to use when writing to the Console
standard output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Targ
et"/> to use when writing to the Console
standard output stream.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleEr
ror">
<summary>
The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Targ
et"/> to use when writing to the Console
standard error output stream.
</summary>
<remarks>
<para>
The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Targ
et"/> to use when writing to the Console
standard error output stream.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ManagedColoredConsoleAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Mana
gedColoredConsoleAppender"/> class.
</summary>
<remarks>
The instance of the <see cref="T:log4net.Appender.ManagedColoredCons
oleAppender"/> class is set up to write
to the standard output stream.
</remarks>
</member>
<member name="M:log4net.Appender.ManagedColoredConsoleAppender.AddMappin
g(log4net.Appender.ManagedColoredConsoleAppender.LevelColors)">
<summary>
Add a mapping of level to color - done by the config file
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Add a <see cref="T:log4net.Appender.ManagedColoredConsoleAppender.Le
velColors"/> mapping to this appender.
Each mapping defines the foreground and background colors
for a level.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ManagedColoredConsoleAppender.Append(lo
g4net.Core.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
log4net.Core.LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to the console.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.ManagedColoredConsoleAppender.ActivateO
ptions">
<summary>
Initialize the options for this appender
</summary>
<remarks>
<para>
Initialize the level to color mappings set on this appender.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_writeTo
ErrorStream">
<summary>
Flag to write output to the error stream rather than the standard ou
tput stream
</summary>
</member>
<member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_levelMa
pping">
<summary>
Mapping from level object to color value
</summary>
</member>
<member name="P:log4net.Appender.ManagedColoredConsoleAppender.Target">
<summary>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</summary>
<value>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</value>
<remarks>
<para>
Target is the value of the console output stream.
This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ManagedColoredConsoleAppender.RequiresL
ayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.ManagedColoredConsoleAppender.LevelColo
rs">
<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.
</summary>
<remarks>
<para>
Defines the mapping between a level and the color it should be displ
ayed in.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ManagedColoredConsoleAppender.LevelColo
rs.ForeColor">
<summary>
The mapped foreground color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped foreground color for the specified level.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.ManagedColoredConsoleAppender.LevelColo
rs.BackColor">
<summary>
The mapped background color for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped background color for the specified level.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.MemoryAppender">
<summary>
Stores logging events in an array.
</summary>
<remarks>
<para>
The memory appender stores all the logging events
that are appended in an in-memory array.
</para>
<para>
Use the <see cref="M:log4net.Appender.MemoryAppender.GetEvents"/> me
thod to get
the current list of events that have been appended.
</para>
<para>
Use the <see cref="M:Clear()"/> method to clear the
current list of events.
</para>
</remarks>
<author>Julian Biddle</author>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Appender.MemoryAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Memo
ryAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.MemoryAppender.GetEvents">
<summary>
Gets the events that have been logged.
</summary>
<returns>The events that have been logged</returns>
<remarks>
<para>
Gets the events that have been logged.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.MemoryAppender.Append(log4net.Core.Logg
ingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">the event to log</param>
<remarks>
<para>Stores the <paramref name="loggingEvent"/> in the events list.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.MemoryAppender.Clear">
<summary>
Clear the list of events
</summary>
<remarks>
Clear the list of events
</remarks>
</member>
<member name="F:log4net.Appender.MemoryAppender.m_eventsList">
<summary>
The list of events that have been appended.
</summary>
</member>
<member name="F:log4net.Appender.MemoryAppender.m_fixFlags">
<summary>
Value indicating which fields in the event should be fixed
</summary>
<remarks>
By default all fields are fixed
</remarks>
</member>
<member name="P:log4net.Appender.MemoryAppender.OnlyFixPartialEventData"
>
<summary>
Gets or sets a value indicating whether only part of the logging eve
nt
data should be fixed.
</summary>
<value>
<c>true</c> if the appender should only fix part of the logging even
t
data, otherwise <c>false</c>. The default is <c>false</c>.
</value>
<remarks>
<para>
Setting this property to <c>true</c> will cause only part of the eve
nt
data to be fixed and stored in the appender, hereby improving perfor
mance.
</para>
<para>
See <see cref="M:LoggingEvent.FixVolatileData(bool)"/> for more info
rmation.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.MemoryAppender.Fix">
<summary>
Gets or sets the fields that will be fixed in the event
</summary>
<remarks>
<para>
The logging event needs to have certain thread specific values
captured before it can be buffered. See <see cref="P:log4net.Core.Lo
ggingEvent.Fix"/>
for details.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.NetSendAppender">
<summary>
Logs entries by sending network messages using the
<see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(S
ystem.String,System.String,System.String,System.String,System.Int32)"/> native f
unction.
</summary>
<remarks>
<para>
You can send messages only to names that are active
on the network. If you send the message to a user name,
that user must be logged on and running the Messenger
service to receive the message.
</para>
<para>
The receiver will get a top most window displaying the
messages one at a time, therefore this appender should
not be used to deliver a high volume of messages.
</para>
<para>
The following table lists some possible uses for this appender :
</para>
<para>
<list type="table">
<listheader>
<term>Action</term>
<description>Property Value(s)</description>
</listheader>
<item>
<term>Send a message to a user account on the local machine<
/term>
<description>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Server"/>
= &lt;name of the local machine&gt;
</para>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Recipient"
/> = &lt;user name&gt;
</para>
</description>
</item>
<item>
<term>Send a message to a user account on a remote machine</
term>
<description>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Server"/>
= &lt;name of the remote machine&gt;
</para>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Recipient"
/> = &lt;user name&gt;
</para>
</description>
</item>
<item>
<term>Send a message to a domain user account</term>
<description>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Server"/>
= &lt;name of a domain controller | uninitialized&gt;
</para>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Recipient"
/> = &lt;user name&gt;
</para>
</description>
</item>
<item>
<term>Send a message to all the names in a workgroup or doma
in</term>
<description>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Recipient"
/> = &lt;workgroup name | domain name&gt;*
</para>
</description>
</item>
<item>
<term>Send a message from the local machine to a remote mach
ine</term>
<description>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Server"/>
= &lt;name of the local machine | uninitialized&gt;
</para>
<para>
<see cref="P:log4net.Appender.NetSendAppender.Recipient"
/> = &lt;name of the remote machine&gt;
</para>
</description>
</item>
</list>
</para>
<para>
<b>Note :</b> security restrictions apply for sending
network messages, see <see cref="M:log4net.Appender.NetSendAppender.
NetMessageBufferSend(System.String,System.String,System.String,System.String,Sys
tem.Int32)"/>
for more information.
</para>
</remarks>
<example>
<para>
An example configuration section to log information
using this appender from the local machine, named
LOCAL_PC, to machine OPERATOR_PC :
</para>
<code lang="XML" escaped="true">
<appender name="NetSendAppender_Operator" type="log4net.Appender.Net
SendAppender">
<server value="LOCAL_PC"/>
<recipient value="OPERATOR_PC"/>
<layout type="log4net.Layout.PatternLayout" value="%-5p %c [%x]
- %m%n"/>
</appender>
</code>
</example>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Appender.NetSendAppender.m_server">
<summary>
The DNS or NetBIOS name of the server on which the function is to ex
ecute.
</summary>
</member>
<member name="F:log4net.Appender.NetSendAppender.m_sender">
<summary>
The sender of the network message.
</summary>
</member>
<member name="F:log4net.Appender.NetSendAppender.m_recipient">
<summary>
The message alias to which the message should be sent.
</summary>
</member>
<member name="F:log4net.Appender.NetSendAppender.m_securityContext">
<summary>
The security context to use for privileged calls
</summary>
</member>
<member name="M:log4net.Appender.NetSendAppender.#ctor">
<summary>
Initializes the appender.
</summary>
<remarks>
The default constructor initializes all fields to their default valu
es.
</remarks>
</member>
<member name="M:log4net.Appender.NetSendAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.NetSendAppender
.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.NetSendAppender.Activa
teOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.NetSendAppender.ActivateOptions"/> mus
t be called again.
</para>
<para>
The appender will be ignored if no <see cref="P:log4net.Appender.Net
SendAppender.Recipient"/> was specified.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">The required proper
ty <see cref="P:log4net.Appender.NetSendAppender.Recipient"/> was not specified.
</exception>
</member>
<member name="M:log4net.Appender.NetSendAppender.Append(log4net.Core.Log
gingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Sends the event using a network message.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(Sy
stem.String,System.String,System.String,System.String,System.Int32)">
<summary>
Sends a buffer of information to a registered message alias.
</summary>
<param name="serverName">The DNS or NetBIOS name of the server on wh
ich the function is to execute.</param>
<param name="msgName">The message alias to which the message buffer
should be sent</param>
<param name="fromName">The originator of the message.</param>
<param name="buffer">The message text.</param>
<param name="bufferSize">The length, in bytes, of the message text.<
/param>
<remarks>
<para>
The following restrictions apply for sending network messages:
</para>
<para>
<list type="table">
<listheader>
<term>Platform</term>
<description>Requirements</description>
</listheader>
<item>
<term>Windows NT</term>
<description>
<para>
No special group membership is required to send a networ
k message.
</para>
<para>
Admin, Accounts, Print, or Server Operator group members
hip is required to
successfully send a network message on a remote server.
</para>
</description>
</item>
<item>
<term>Windows 2000 or later</term>
<description>
<para>
If you send a message on a domain controller that is run
ning Active Directory,
access is allowed or denied based on the access control
list (ACL) for the securable
object. The default ACL permits only Domain Admins and A
ccount Operators to send a network message.
</para>
<para>
On a member server or workstation, only Administrators a
nd Server Operators can send a network message.
</para>
</description>
</item>
</list>
</para>
<para>
For more information see <a href="http://msdn.microsoft.com/library/
default.asp?url=/library/en-us/netmgmt/netmgmt/security_requirements_for_the_net
work_management_functions.asp">Security Requirements for the Network Management
Functions</a>.
</para>
</remarks>
<returns>
<para>
If the function succeeds, the return value is zero.
</para>
</returns>
</member>
<member name="P:log4net.Appender.NetSendAppender.Sender">
<summary>
Gets or sets the sender of the message.
</summary>
<value>
The sender of the message.
</value>
<remarks>
If this property is not specified, the message is sent from the loca
l computer.
</remarks>
</member>
<member name="P:log4net.Appender.NetSendAppender.Recipient">
<summary>
Gets or sets the message alias to which the message should be sent.
</summary>
<value>
The recipient of the message.
</value>
<remarks>
This property should always be specified in order to send a message.
</remarks>
</member>
<member name="P:log4net.Appender.NetSendAppender.Server">
<summary>
Gets or sets the DNS or NetBIOS name of the remote server on which t
he function is to execute.
</summary>
<value>
DNS or NetBIOS name of the remote server on which the function is to
execute.
</value>
<remarks>
<para>
For Windows NT 4.0 and earlier, the string should begin with \\.
</para>
<para>
If this property is not specified, the local computer is used.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.NetSendAppender.SecurityContext">
<summary>
Gets or sets the <see cref="P:log4net.Appender.NetSendAppender.Secur
ityContext"/> used to call the NetSend method.
</summary>
<value>
The <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/>
used to call the NetSend method.
</value>
<remarks>
<para>
Unless a <see cref="P:log4net.Appender.NetSendAppender.SecurityConte
xt"/> specified here for this appender
the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvide
r"/> is queried for the
security context to use. The default behavior is to use the security
context
of the current thread.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.NetSendAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.OutputDebugStringAppender">
<summary>
Appends log events to the OutputDebugString system.
</summary>
<remarks>
<para>
OutputDebugStringAppender appends log events to the
OutputDebugString system.
</para>
<para>
The string is passed to the native <c>OutputDebugString</c>
function.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Appender.OutputDebugStringAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Outp
utDebugStringAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.OutputDebugStringAppender.Append(log4ne
t.Core.LoggingEvent)">
<summary>
Write the logging event to the output debug string API
</summary>
<param name="loggingEvent">the event to log</param>
<remarks>
<para>
Write the logging event to the output debug string API
</para>
</remarks>
</member>
<member name="M:log4net.Appender.OutputDebugStringAppender.OutputDebugSt
ring(System.String)">
<summary>
Stub for OutputDebugString native method
</summary>
<param name="message">the string to output</param>
<remarks>
<para>
Stub for OutputDebugString native method
</para>
</remarks>
</member>
<member name="P:log4net.Appender.OutputDebugStringAppender.RequiresLayou
t">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RemoteSyslogAppender">
<summary>
Logs events to a remote syslog daemon.
</summary>
<remarks>
<para>
The BSD syslog protocol is used to remotely log to
a syslog daemon. The syslogd listens for for messages
on UDP port 514.
</para>
<para>
The syslog UDP protocol is not authenticated. Most syslog daemons
do not accept remote log messages because of the security implicatio
ns.
You may be able to use the LocalSyslogAppender to talk to a local
syslog service.
</para>
<para>
There is an RFC 3164 that claims to document the BSD Syslog Protocol
.
This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
This appender generates what the RFC calls an "Original Device Messa
ge",
i.e. does not include the TIMESTAMP or HOSTNAME fields. By observati
on
this format of message will be accepted by all current syslog daemon
implementations. The daemon will attach the current time and the sou
rce
hostname or IP address to any messages received.
</para>
<para>
Syslog messages must have a facility and and a severity. The severit
y
is derived from the Level of the logging event.
The facility must be chosen from the set of defined syslog
<see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/>
values. The facilities list is predefined
and cannot be extended.
</para>
<para>
An identifier is specified with each log message. This can be specif
ied
by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Id
entity"/> property. The identity (also know
as the tag) must not contain white space. The default value for the
identity is the application name (from <see cref="P:log4net.Core.Log
gingEvent.Domain"/>).
</para>
</remarks>
<author>Rob Lyon</author>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Appender.UdpAppender">
<summary>
Sends logging events as connectionless UDP datagrams to a remote ho
st or a
multicast group using an <see cref="T:System.Net.Sockets.UdpClient"
/>.
</summary>
<remarks>
<para>
UDP guarantees neither that messages arrive, nor that they arrive i
n the correct order.
</para>
<para>
To view the logging results, a custom application can be developed
that listens for logging
events.
</para>
<para>
When decoding events send via this appender remember to use the sam
e encoding
to decode the events as was used to send the events. See the <see c
ref="P:log4net.Appender.UdpAppender.Encoding"/>
property to specify the encoding to use.
</para>
</remarks>
<example>
This example shows how to log receive logging events that are sent
on IP address 244.0.0.1 and port 8080 to the console. The event is
encoded in the packet as a unicode string and it is decoded as such
.
<code lang="C#">
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
UdpClient udpClient;
byte[] buffer;
string loggingEvent;

try
{
udpClient = new UdpClient(8080);

while(true)
{
buffer = udpClient.Receive(ref remoteEndPoint);
loggingEvent = System.Text.Encoding.Unicode.GetString(buffe
r);
Console.WriteLine(loggingEvent);
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
</code>
<code lang="Visual Basic">
Dim remoteEndPoint as IPEndPoint
Dim udpClient as UdpClient
Dim buffer as Byte()
Dim loggingEvent as String

Try
remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
udpClient = new UdpClient(8080)

While True
buffer = udpClient.Receive(ByRef remoteEndPoint)
loggingEvent = System.Text.Encoding.Unicode.GetString(buffe
r)
Console.WriteLine(loggingEvent)
Wend
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
</code>
<para>
An example configuration section to log information using this appe
nder to the
IP 224.0.0.1 on port 8080:
</para>
<code lang="XML" escaped="true">
<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
<remoteAddress value="224.0.0.1"/>
<remotePort value="8080"/>
<layout type="log4net.Layout.PatternLayout" value="%-5level %lo
gger [%ndc] - %message%newline"/>
</appender>
</code>
</example>
<author>Gert Driesen</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.UdpAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.UdpA
ppender"/> class.
</summary>
<remarks>
The default constructor initializes all fields to their default valu
es.
</remarks>
</member>
<member name="M:log4net.Appender.UdpAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.UdpAppender.Act
ivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.UdpAppender.ActivateOp
tions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> must be
called again.
</para>
<para>
The appender will be ignored if no <see cref="P:log4net.Appender.Udp
Appender.RemoteAddress"/> was specified or
an invalid remote or local TCP port number was specified.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">The required proper
ty <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was not specified.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The TCP port
number assigned to <see cref="P:log4net.Appender.UdpAppender.LocalPort"/> or <se
e cref="P:log4net.Appender.UdpAppender.RemotePort"/> is less than <see cref="F:S
ystem.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoi
nt.MaxPort"/>.</exception>
</member>
<member name="M:log4net.Appender.UdpAppender.Append(log4net.Core.Logging
Event)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Sends the event using an UDP datagram.
</para>
<para>
Exceptions are passed to the <see cref="P:log4net.Appender.AppenderS
keleton.ErrorHandler"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.UdpAppender.OnClose">
<summary>
Closes the UDP connection and releases all resources associated with

this <see cref="T:log4net.Appender.UdpAppender"/> instance.
</summary>
<remarks>
<para>
Disables the underlying <see cref="T:System.Net.Sockets.UdpClient"/>
and releases all managed
and unmanaged resources associated with the <see cref="T:log4net.App
ender.UdpAppender"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.UdpAppender.InitializeClientConnection"
>
<summary>
Initializes the underlying <see cref="T:System.Net.Sockets.UdpClien
t"/> connection.
</summary>
<remarks>
<para>
The underlying <see cref="T:System.Net.Sockets.UdpClient"/> is initi
alized and binds to the
port number from which you intend to communicate.
</para>
<para>
Exceptions are passed to the <see cref="P:log4net.Appender.AppenderS
keleton.ErrorHandler"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.UdpAppender.m_remoteAddress">
<summary>
The IP address of the remote host or multicast group to which
the logging event will be sent.
</summary>
</member>
<member name="F:log4net.Appender.UdpAppender.m_remotePort">
<summary>
The TCP port number of the remote host or multicast group to
which the logging event will be sent.
</summary>
</member>
<member name="F:log4net.Appender.UdpAppender.m_remoteEndPoint">
<summary>
The cached remote endpoint to which the logging events will be sent.
</summary>
</member>
<member name="F:log4net.Appender.UdpAppender.m_localPort">
<summary>
The TCP port number from which the <see cref="T:System.Net.Sockets.U
dpClient"/> will communicate.
</summary>
</member>
<member name="F:log4net.Appender.UdpAppender.m_client">
<summary>
The <see cref="T:System.Net.Sockets.UdpClient"/> instance that will
be used for sending the
logging events.
</summary>
</member>
<member name="F:log4net.Appender.UdpAppender.m_encoding">
<summary>
The encoding to use for the packet.
</summary>
</member>
<member name="P:log4net.Appender.UdpAppender.RemoteAddress">
<summary>
Gets or sets the IP address of the remote host or multicast group to
which
the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should s
ent the logging event.
</summary>
<value>
The IP address of the remote host or multicast group to which the lo
gging event
will be sent.
</value>
<remarks>
<para>
Multicast addresses are identified by IP class <b>D</b> addresses (i
n the range 224.0.0.0 to
239.255.255.255). Multicast packets can pass across different netwo
rks through routers, so
it is possible to use multicasts in an Internet scenario as long as
your network provider
supports multicasting.
</para>
<para>
Hosts that want to receive particular multicast messages must regist
er their interest by joining
the multicast group. Multicast messages are not sent to networks wh
ere no host has joined
the multicast group. Class <b>D</b> IP addresses are used for multi
cast groups, to differentiate
them from normal host addresses, allowing nodes to easily detect if
a message is of interest.
</para>
<para>
Static multicast addresses that are needed globally are assigned by
IANA. A few examples are listed in the table below:
</para>
<para>
<list type="table">
<listheader>
<term>IP Address</term>
<description>Description</description>
</listheader>
<item>
<term>224.0.0.1</term>
<description>
<para>
Sends a message to all system on the subnet.
</para>
</description>
</item>
<item>
<term>224.0.0.2</term>
<description>
<para>
Sends a message to all routers on the subnet.
</para>
</description>
</item>
<item>
<term>224.0.0.12</term>
<description>
<para>
The DHCP server answers messages on the IP address 224.0
.0.12, but only on a subnet.
</para>
</description>
</item>
</list>
</para>
<para>
A complete list of actually reserved multicast addresses and their o
wners in the ranges
defined by RFC 3171 can be found at the <A href="http://www.iana.org
/assignments/multicast-addresses">IANA web site</A>.
</para>
<para>
The address range 239.0.0.0 to 239.255.255.255 is reserved for admin
istrative scope-relative
addresses. These addresses can be reused with other local groups.
Routers are typically
configured with filters to prevent multicast traffic in this range f
rom flowing outside
of the local network.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.UdpAppender.RemotePort">
<summary>
Gets or sets the TCP port number of the remote host or multicast gro
up to which
the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should s
ent the logging event.
</summary>
<value>
An integer value in the range <see cref="F:System.Net.IPEndPoint.Min
Port"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/>
indicating the TCP port number of the remote host or multicast group
to which the logging event
will be sent.
</value>
<remarks>
The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will sen
d messages to this TCP port number
on the remote host or multicast group.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The value spe
cified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater tha
n <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
</member>
<member name="P:log4net.Appender.UdpAppender.LocalPort">
<summary>
Gets or sets the TCP port number from which the underlying <see cref
="T:System.Net.Sockets.UdpClient"/> will communicate.
</summary>
<value>
An integer value in the range <see cref="F:System.Net.IPEndPoint.Min
Port"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/>
indicating the TCP port number from which the underlying <see cref="
T:System.Net.Sockets.UdpClient"/> will communicate.
</value>
<remarks>
<para>
The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will bin
d to this port for sending messages.
</para>
<para>
Setting the value to 0 (the default) will cause the udp client not t
o bind to
a local port.
</para>
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The value spe
cified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater tha
n <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
</member>
<member name="P:log4net.Appender.UdpAppender.Encoding">
<summary>
Gets or sets <see cref="P:log4net.Appender.UdpAppender.Encoding"/> u
sed to write the packets.
</summary>
<value>
The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to wr
ite the packets.
</value>
<remarks>
<para>
The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to wr
ite the packets.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.UdpAppender.Client">
<summary>
Gets or sets the underlying <see cref="T:System.Net.Sockets.UdpClien
t"/>.
</summary>
<value>
The underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
</value>
<remarks>
<see cref="T:log4net.Appender.UdpAppender"/> creates a <see cref="T:
System.Net.Sockets.UdpClient"/> to send logging events
over a network. Classes deriving from <see cref="T:log4net.Appender
.UdpAppender"/> can use this
property to get or set this <see cref="T:System.Net.Sockets.UdpClien
t"/>. Use the underlying <see cref="T:System.Net.Sockets.UdpClient"/>
returned from <see cref="P:log4net.Appender.UdpAppender.Client"/> if
you require access beyond that which
<see cref="T:log4net.Appender.UdpAppender"/> provides.
</remarks>
</member>
<member name="P:log4net.Appender.UdpAppender.RemoteEndPoint">
<summary>
Gets or sets the cached remote endpoint to which the logging events
should be sent.
</summary>
<value>
The cached remote endpoint to which the logging events will be sent.
</value>
<remarks>
The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> met
hod will initialize the remote endpoint
with the values of the <see cref="P:log4net.Appender.UdpAppender.Rem
oteAddress"/> and <see cref="P:log4net.Appender.UdpAppender.RemotePort"/>
properties.
</remarks>
</member>
<member name="P:log4net.Appender.UdpAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.DefaultSyslogPort"
>
<summary>
Syslog port 514
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferSize
">
<summary>
Initial buffer size
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferMaxC
apacity">
<summary>
Maximum buffer size before it is recycled
</summary>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Remo
teSyslogAppender"/> class.
</summary>
<remarks>
This instance of the <see cref="T:log4net.Appender.RemoteSyslogAppen
der"/> class is set up to write
to a remote syslog daemon.
</remarks>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.AddMapping(log4net
.Appender.RemoteSyslogAppender.LevelSeverity)">
<summary>
Add a mapping of level to severity
</summary>
<param name="mapping">The mapping to add</param>
<remarks>
<para>
Add a <see cref="T:log4net.Appender.RemoteSyslogAppender.LevelSeveri
ty"/> mapping to this appender.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.Append(log4net.Cor
e.LoggingEvent)">
<summary>
This method is called by the <see cref="M:AppenderSkeleton.DoAppend(
LoggingEvent)"/> method.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the event to a remote syslog daemon.
</para>
<para>
The format of the output will depend on the appender's layout.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.ActivateOptions">
<summary>
Initialize the options for this appender
</summary>
<remarks>
<para>
Initialize the level to syslog severity mappings set on this appende
r.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.GetSeverity(log4ne
t.Core.Level)">
<summary>
Translates a log4net level to a syslog severity.
</summary>
<param name="level">A log4net level.</param>
<returns>A syslog severity.</returns>
<remarks>
<para>
Translates a log4net level to a syslog severity.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemoteSyslogAppender.GeneratePriority(l
og4net.Appender.RemoteSyslogAppender.SyslogFacility,log4net.Appender.RemoteSyslo
gAppender.SyslogSeverity)">
<summary>
Generate a syslog priority.
</summary>
<param name="facility">The syslog facility.</param>
<param name="severity">The syslog severity.</param>
<returns>A syslog priority.</returns>
<remarks>
<para>
Generate a syslog priority.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.m_facility">
<summary>
The facility. The default facility is <see cref="F:log4net.Appender.
RemoteSyslogAppender.SyslogFacility.User"/>.
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.m_identity">
<summary>
The message identity
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.m_levelMapping">
<summary>
Mapping from level object to syslog severity
</summary>
</member>
<member name="P:log4net.Appender.RemoteSyslogAppender.Identity">
<summary>
Message identity
</summary>
<remarks>
<para>
An identifier is specified with each log message. This can be specif
ied
by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Id
entity"/> property. The identity (also know
as the tag) must not contain white space. The default value for the
identity is the application name (from <see cref="P:log4net.Core.Log
gingEvent.Domain"/>).
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RemoteSyslogAppender.Facility">
<summary>
Syslog facility
</summary>
<remarks>
Set to one of the <see cref="T:log4net.Appender.RemoteSyslogAppender
.SyslogFacility"/> values. The list of
facilities is predefined and cannot be extended. The default value
is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility
.User"/>.
</remarks>
</member>
<member name="T:log4net.Appender.RemoteSyslogAppender.SyslogSeverity">
<summary>
syslog severities
</summary>
<remarks>
<para>
The syslog severities.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Eme
rgency">
<summary>
system is unusable
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Ale
rt">
<summary>
action must be taken immediately
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Cri
tical">
<summary>
critical conditions
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Err
or">
<summary>
error conditions
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.War
ning">
<summary>
warning conditions
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Not
ice">
<summary>
normal but significant condition
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Inf
ormational">
<summary>
informational
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogSeverity.Deb
ug">
<summary>
debug-level messages
</summary>
</member>
<member name="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility">
<summary>
syslog facilities
</summary>
<remarks>
<para>
The syslog facilities
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ker
nel">
<summary>
kernel messages
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Use
r">
<summary>
random user-level messages
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Mai
l">
<summary>
mail system
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Dae
mons">
<summary>
system daemons
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Aut
horization">
<summary>
security/authorization messages
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Sys
log">
<summary>
messages generated internally by syslogd
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Pri
nter">
<summary>
line printer subsystem
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.New
s">
<summary>
network news subsystem
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Uuc
p">
<summary>
UUCP subsystem
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clo
ck">
<summary>
clock (cron/at) daemon
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Aut
horization2">
<summary>
security/authorization messages (private)
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ftp
">
<summary>
ftp daemon
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ntp
">
<summary>
NTP subsystem
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Aud
it">
<summary>
log audit
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Ale
rt">
<summary>
log alert
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Clo
ck2">
<summary>
clock daemon
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al0">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al1">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al2">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al3">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al4">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al5">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al6">
<summary>
reserved for local use
</summary>
</member>
<member name="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.Loc
al7">
<summary>
reserved for local use
</summary>
</member>
<member name="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity">
<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.
</summary>
<remarks>
<para>
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.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RemoteSyslogAppender.LevelSeverity.Seve
rity">
<summary>
The mapped syslog severity for the specified level
</summary>
<remarks>
<para>
Required property.
The mapped syslog severity for the specified level
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RemotingAppender">
<summary>
Delivers logging events to a remote logging sink.
</summary>
<remarks>
<para>
This Appender is designed to deliver events to a remote sink.
That is any object that implements the <see cref="T:log4net.Appender
.RemotingAppender.IRemoteLoggingSink"/>
interface. It delivers the events using .NET remoting. The
object to deliver events to is specified by setting the
appenders <see cref="P:log4net.Appender.RemotingAppender.Sink"/> pro
perty.</para>
<para>
The RemotingAppender buffers events before sending them. This allows
it to
make more efficient use of the remoting infrastructure.</para>
<para>
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 tha
t
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 <see cref="T:System.Runti
me.Remoting.Messaging.CallContext"/>),
if they are marked as <see cref="T:System.Runtime.Remoting.Messaging
.ILogicalThreadAffinative"/>, across the
remoting boundary. If the server is not contactable then
the remoting infrastructure will clear the <see cref="T:System.Runti
me.Remoting.Messaging.ILogicalThreadAffinative"/>
objects from the <see cref="T:System.Runtime.Remoting.Messaging.Call
Context"/>. To prevent a logging failure from
having side effects on the calling application the remoting call mus
t be made
from a separate thread to the one used by the application. A <see cr
ef="T:System.Threading.ThreadPool"/>
thread is used for this. If no <see cref="T:System.Threading.ThreadP
ool"/> thread is available then
the events will block in the thread pool manager until a thread is a
vailable.</para>
<para>
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 even
ts have been sent, but
this will timeout after 30 seconds regardless.</para>
<para>
If this appender is being closed because the <see cref="E:System.App
Domain.ProcessExit"/>
event has fired it may not be possible to send all the queued events
. During process
exit the runtime limits the time that a <see cref="E:System.AppDomai
n.ProcessExit"/>
event handler is allowed to run for. If the runtime terminates the t
hreads before
the queued events have been sent then they will be lost. To ensure t
hat all events
are sent the appender must be closed before the application exits. S
ee
<see cref="M:log4net.Core.LoggerManager.Shutdown"/> for details on h
ow to shutdown
log4net programmatically.</para>
</remarks>
<seealso cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSin
k"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Daniel Cazzulino</author>
</member>
<member name="M:log4net.Appender.RemotingAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Remo
tingAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemotingAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.RemotingAppende
r.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.RemotingAppender.Activ
ateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.RemotingAppender.ActivateOptions"/> mu
st be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemotingAppender.SendBuffer(log4net.Cor
e.LoggingEvent[])">
<summary>
Send the contents of the buffer to the remote sink.
</summary>
<remarks>
The events are not sent immediately. They are scheduled to be sent
using a pool thread. The effect is that the send occurs asynchronous
ly.
This is very important for a number of non obvious reasons. The remo
ting
infrastructure will flow thread local variables (stored in the <see
cref="T:System.Runtime.Remoting.Messaging.CallContext"/>),
if they are marked as <see cref="T:System.Runtime.Remoting.Messaging
.ILogicalThreadAffinative"/>, across the
remoting boundary. If the server is not contactable then
the remoting infrastructure will clear the <see cref="T:System.Runti
me.Remoting.Messaging.ILogicalThreadAffinative"/>
objects from the <see cref="T:System.Runtime.Remoting.Messaging.Call
Context"/>. To prevent a logging failure from
having side effects on the calling application the remoting call mus
t be made
from a separate thread to the one used by the application. A <see cr
ef="T:System.Threading.ThreadPool"/>
thread is used for this. If no <see cref="T:System.Threading.ThreadP
ool"/> thread is available then
the events will block in the thread pool manager until a thread is a
vailable.
</remarks>
<param name="events">The events to send.</param>
</member>
<member name="M:log4net.Appender.RemotingAppender.OnClose">
<summary>
Override base class close.
</summary>
<remarks>
<para>
This method waits while there are queued work items. The events are
sent asynchronously using <see cref="T:System.Threading.ThreadPool"/
> work items. These items
will be sent once a thread pool thread is available to send them, th
erefore
it is possible to close the appender before all the queued events ha
ve been
sent.</para>
<para>
This method attempts to wait until all the queued events have been s
ent, but this
method will timeout after 30 seconds regardless.</para>
<para>
If the appender is being closed because the <see cref="E:System.AppD
omain.ProcessExit"/>
event has fired it may not be possible to send all the queued events
. During process
exit the runtime limits the time that a <see cref="E:System.AppDomai
n.ProcessExit"/>
event handler is allowed to run for.</para>
</remarks>
</member>
<member name="M:log4net.Appender.RemotingAppender.BeginAsyncSend">
<summary>
A work item is being queued into the thread pool
</summary>
</member>
<member name="M:log4net.Appender.RemotingAppender.EndAsyncSend">
<summary>
A work item from the thread pool has completed
</summary>
</member>
<member name="M:log4net.Appender.RemotingAppender.SendBufferCallback(Sys
tem.Object)">
<summary>
Send the contents of the buffer to the remote sink.
</summary>
<remarks>
This method is designed to be used with the <see cref="T:System.Thre
ading.ThreadPool"/>.
This method expects to be passed an array of <see cref="T:log4net.Co
re.LoggingEvent"/>
objects in the state param.
</remarks>
<param name="state">the logging events to send</param>
</member>
<member name="F:log4net.Appender.RemotingAppender.m_sinkUrl">
<summary>
The URL of the remote sink.
</summary>
</member>
<member name="F:log4net.Appender.RemotingAppender.m_sinkObj">
<summary>
The local proxy (.NET remoting) for the remote logging sink.
</summary>
</member>
<member name="F:log4net.Appender.RemotingAppender.m_queuedCallbackCount"
>
<summary>
The number of queued callbacks currently waiting or executing
</summary>
</member>
<member name="F:log4net.Appender.RemotingAppender.m_workQueueEmptyEvent"
>
<summary>
Event used to signal when there are no queued work items
</summary>
<remarks>
This event is set when there are no queued work items. In this
state it is safe to close the appender.
</remarks>
</member>
<member name="P:log4net.Appender.RemotingAppender.Sink">
<summary>
Gets or sets the URL of the well-known object that will accept
the logging events.
</summary>
<value>
The well-known URL of the remote sink.
</value>
<remarks>
<para>
The URL of the remoting sink that will accept logging events.
The sink must implement the <see cref="T:log4net.Appender.RemotingAp
pender.IRemoteLoggingSink"/>
interface.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink">
<summary>
Interface used to deliver <see cref="T:log4net.Core.LoggingEvent"/>
objects to a remote sink.
</summary>
<remarks>
This interface must be implemented by a remoting sink
if the <see cref="T:log4net.Appender.RemotingAppender"/> is to be us
ed
to deliver logging events to the sink.
</remarks>
</member>
<member name="M:log4net.Appender.RemotingAppender.IRemoteLoggingSink.Log
Events(log4net.Core.LoggingEvent[])">
<summary>
Delivers logging events to the remote sink
</summary>
<param name="events">Array of events to log.</param>
<remarks>
<para>
Delivers logging events to the remote sink
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RollingFileAppender">
<summary>
Appender that rolls log files based on size or date or both.
</summary>
<remarks>
<para>
RollingFileAppender can roll log files based on size or date or both
depending on the setting of the <see cref="P:log4net.Appender.Rollin
gFileAppender.RollingStyle"/> property.
When set to <see cref="F:log4net.Appender.RollingFileAppender.Rollin
gMode.Size"/> the log file will be rolled
once its size exceeds the <see cref="P:log4net.Appender.RollingFileA
ppender.MaximumFileSize"/>.
When set to <see cref="F:log4net.Appender.RollingFileAppender.Rollin
gMode.Date"/> the log file will be rolled
once the date boundary specified in the <see cref="P:log4net.Appende
r.RollingFileAppender.DatePattern"/> property
is crossed.
When set to <see cref="F:log4net.Appender.RollingFileAppender.Rollin
gMode.Composite"/> the log file will be
rolled once the date boundary specified in the <see cref="P:log4net.
Appender.RollingFileAppender.DatePattern"/> property
is crossed, but within a date boundary the file will also be rolled
once its size exceeds the <see cref="P:log4net.Appender.RollingFileA
ppender.MaximumFileSize"/>.
When set to <see cref="F:log4net.Appender.RollingFileAppender.Rollin
gMode.Once"/> the log file will be rolled when
the appender is configured. This effectively means that the log file
can be
rolled once per program execution.
</para>
<para>
A of few additional optional features have been added:
<list type="bullet">
<item>Attach date pattern for current log file <see cref="P:log4net.
Appender.RollingFileAppender.StaticLogFileName"/></item>
<item>Backup number increments for newer files <see cref="P:log4net.
Appender.RollingFileAppender.CountDirection"/></item>
<item>Infinite number of backups by file size <see cref="P:log4net.A
ppender.RollingFileAppender.MaxSizeRollBackups"/></item>
</list>
</para>

<note>
<para>
For large or infinite numbers of backup files a <see cref="P:log4net
.Appender.RollingFileAppender.CountDirection"/>
greater than zero is highly recommended, otherwise all the backup fi
les need
to be renamed each time a new backup is created.
</para>
<para>
When Date/Time based rolling is used setting <see cref="P:log4net.Ap
pender.RollingFileAppender.StaticLogFileName"/>
to <see langword="true"/> will reduce the number of file renamings t
o few or none.
</para>
</note>

<note type="caution">
<para>
Changing <see cref="P:log4net.Appender.RollingFileAppender.StaticLog
FileName"/> or <see cref="P:log4net.Appender.RollingFileAppender.CountDirection"
/> without clearing
the log file directory of backup files will cause unexpected and unw
anted side effects.
</para>
</note>

<para>
If Date/Time based rolling is enabled this appender will attempt to
roll existing files
in the directory without a Date/Time tag based on the last write dat
e of the base log file.
The appender only rolls the log file when a message is logged. If Da
te/Time based rolling
is enabled then the appender will not roll the log file at the Date/
Time boundary but
at the point when the next message is logged after the boundary has
been crossed.
</para>

<para>
The <see cref="T:log4net.Appender.RollingFileAppender"/> extends the
<see cref="T:log4net.Appender.FileAppender"/> and
has the same behavior when opening the log file.
The appender will first try to open the file for writing when <see c
ref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>
is called. This will typically be during configuration.
If the file cannot be opened for writing the appender will attempt
to open the file again each time a message is logged to the appender
.
If the file cannot be opened for writing when a message is logged th
en
the message will be discarded by this appender.
</para>
<para>
When rolling a backup file necessitates deleting an older backup fil
e the
file to be deleted is moved to a temporary name before being deleted
.
</para>

<note type="caution">
<para>
A maximum number of backup files when rolling on date/time boundarie
s is not supported.
</para>
</note>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Aspi Havewala</author>
<author>Douglas de la Torre</author>
<author>Edward Smit</author>
</member>
<member name="M:log4net.Appender.RollingFileAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Roll
ingFileAppender"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RollingFileAppender.declaringType">
<summary>
The fully qualified type of the RollingFileAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.SetQWForFiles(Syste
m.IO.TextWriter)">
<summary>
Sets the quiet writer being used.
</summary>
<remarks>
This method can be overridden by sub classes.
</remarks>
<param name="writer">the writer to set</param>
</member>
<member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core
.LoggingEvent)">
<summary>
Write out a logging event.
</summary>
<param name="loggingEvent">the event to write to file.</param>
<remarks>
<para>
Handles append time behavior for RollingFileAppender. This checks
if a roll over either by date (checked first) or time (checked secon
d)
is need and then appends to the file last.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.Append(log4net.Core
.LoggingEvent[])">
<summary>
Write out an array of logging events.
</summary>
<param name="loggingEvents">the events to write to file.</param>
<remarks>
<para>
Handles append time behavior for RollingFileAppender. This checks
if a roll over either by date (checked first) or time (checked secon
d)
is need and then appends to the file last.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.AdjustFileBeforeApp
end">
<summary>
Performs any required rolling before outputting the next event
</summary>
<remarks>
<para>
Handles append time behavior for RollingFileAppender. This checks
if a roll over either by date (checked first) or time (checked secon
d)
is need and then appends to the file last.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.OpenFile(System.Str
ing,System.Boolean)">
<summary>
Creates and opens the file for logging. If <see cref="P:log4net.App
ender.RollingFileAppender.StaticLogFileName"/>
is false then the fully qualified name is determined and used.
</summary>
<param name="fileName">the name of the file to open</param>
<param name="append">true to append to existing file</param>
<remarks>
<para>This method will ensure that the directory structure
for the <paramref name="fileName"/> specified exists.</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.GetNextOutputFileNa
me(System.String)">
<summary>
Get the current output file name
</summary>
<param name="fileName">the base file name</param>
<returns>the output file name</returns>
<remarks>
The output file name is based on the base fileName specified.
If <see cref="P:log4net.Appender.RollingFileAppender.StaticLogFileNa
me"/> is set then the output
file name is the same as the base file passed in. Otherwise
the output file depends on the date pattern, on the count
direction or both.
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.DetermineCurSizeRol
lBackups">
<summary>
Determines curSizeRollBackups (only within the current roll point)
</summary>
</member>
<member name="M:log4net.Appender.RollingFileAppender.GetWildcardPatternF
orFile(System.String)">
<summary>
Generates a wildcard pattern that can be used to find all files
that are similar to the base file name.
</summary>
<param name="baseFileName"></param>
<returns></returns>
</member>
<member name="M:log4net.Appender.RollingFileAppender.GetExistingFiles(Sy
stem.String)">
<summary>
Builds a list of filenames for all files matching the base filename
plus a file
pattern.
</summary>
<param name="baseFilePath"></param>
<returns></returns>
</member>
<member name="M:log4net.Appender.RollingFileAppender.RollOverIfDateBound
aryCrossing">
<summary>
Initiates a roll over if needed for crossing a date boundary since t
he last run.
</summary>
</member>
<member name="M:log4net.Appender.RollingFileAppender.ExistingInit">
<summary>
Initializes based on existing conditions at time of <see cref="M:log
4net.Appender.RollingFileAppender.ActivateOptions"/>.
</summary>
<remarks>
<para>
Initializes based on existing conditions at time of <see cref="M:log
4net.Appender.RollingFileAppender.ActivateOptions"/>.
The following is done
<list type="bullet">
<item>determine curSizeRollBackups (only within the current roll poi
nt)</item>
<item>initiates a roll over if needed for crossing a date boundary s
ince the last run.</item>
</list>
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.InitializeFromOneFi
le(System.String,System.String)">
<summary>
Does the work of bumping the 'current' file counter higher
to the highest count when an incremental file name is seen.
The highest count is either the first file (when count direction
is greater than 0) or the last file (when count direction less than
0).
In either case, we want to know the highest count that is present.
</summary>
<param name="baseFile"></param>
<param name="curFileName"></param>
</member>
<member name="M:log4net.Appender.RollingFileAppender.GetBackUpIndex(Syst
em.String)">
<summary>
Attempts to extract a number from the end of the file name that indi
cates
the number of the times the file has been rolled over.
</summary>
<remarks>
Certain date pattern extensions like yyyyMMdd will be parsed as vali
d backup indexes.
</remarks>
<param name="curFileName"></param>
<returns></returns>
</member>
<member name="M:log4net.Appender.RollingFileAppender.InitializeRollBacku
ps(System.String,System.Collections.ArrayList)">
<summary>
Takes a list of files and a base file name, and looks for
'incremented' versions of the base file. Bumps the max
count up to the highest count seen.
</summary>
<param name="baseFile"></param>
<param name="arrayFiles"></param>
</member>
<member name="M:log4net.Appender.RollingFileAppender.ComputeCheckPeriod(
System.String)">
<summary>
Calculates the RollPoint for the datePattern supplied.
</summary>
<param name="datePattern">the date pattern to calculate the check pe
riod for</param>
<returns>The RollPoint that is most accurate for the date pattern su
pplied</returns>
<remarks>
Essentially the date pattern is examined to determine what the
most suitable roll point is. The roll point chosen is the roll point
with the smallest period that can be detected using the date pattern
supplied. i.e. if the date pattern only outputs the year, month, day

and hour then the smallest roll point that can be detected would be
and hourly roll point as minutes could not be detected.
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.RollingFileAppe
nder.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.RollingFileAppender.Ac
tivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.RollingFileAppender.ActivateOptions"/>
must be called again.
</para>
<para>
Sets initial conditions including date/time roll over information, f
irst check,
scheduledFilename, and calls <see cref="M:log4net.Appender.RollingFi
leAppender.ExistingInit"/> to initialize
the current number of backups.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.CombinePath(System.
String,System.String)">
<summary>

</summary>
<param name="path1"></param>
<param name="path2">.1, .2, .3, etc.</param>
<returns></returns>
</member>
<member name="M:log4net.Appender.RollingFileAppender.RollOverTime(System
.Boolean)">
<summary>
Rollover the file(s) to date/time tagged file(s).
</summary>
<param name="fileIsOpen">set to true if the file to be rolled is cur
rently open</param>
<remarks>
<para>
Rollover the file(s) to date/time tagged file(s).
Resets curSizeRollBackups.
If fileIsOpen is set then the new file is opened (through SafeOpenFi
le).
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.RollFile(System.Str
ing,System.String)">
<summary>
Renames file <paramref name="fromFile"/> to file <paramref name="toF
ile"/>.
</summary>
<param name="fromFile">Name of existing file to roll.</param>
<param name="toFile">New name for file.</param>
<remarks>
<para>
Renames file <paramref name="fromFile"/> to file <paramref name="toF
ile"/>. It
also checks for existence of target file and deletes if it does.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.FileExists(System.S
tring)">
<summary>
Test if a file exists at a specified path
</summary>
<param name="path">the path to the file</param>
<returns>true if the file exists</returns>
<remarks>
<para>
Test if a file exists at a specified path
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.DeleteFile(System.S
tring)">
<summary>
Deletes the specified file if it exists.
</summary>
<param name="fileName">The file to delete.</param>
<remarks>
<para>
Delete a file if is exists.
The file is first moved to a new filename then deleted.
This allows the file to be removed even when it cannot
be deleted, but it still can be moved.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.RollOverSize">
<summary>
Implements file roll base on file size.
</summary>
<remarks>
<para>
If the maximum number of size based backups is reached
(<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
file is deleted -- its index determined by the sign of countDirectio
n.
If <c>countDirection</c> &lt; 0, then files
{<c>File.1</c>, ..., <c>File.curSizeRollBackups -1</c>}
are renamed to {<c>File.2</c>, ...,
<c>File.curSizeRollBackups</c>}. Moreover, <c>File</c> is
renamed <c>File.1</c> and closed.
</para>
<para>
A new file is created to receive further log output.
</para>
<para>
If <c>maxSizeRollBackups</c> is equal to zero, then the
<c>File</c> is truncated with no backup files created.
</para>
<para>
If <c>maxSizeRollBackups</c> &lt; 0, then <c>File</c> is
renamed if needed and no files are deleted.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.RollOverRenameFiles
(System.String)">
<summary>
Implements file roll.
</summary>
<param name="baseFileName">the base name to rename</param>
<remarks>
<para>
If the maximum number of size based backups is reached
(<c>curSizeRollBackups == maxSizeRollBackups</c>) then the oldest
file is deleted -- its index determined by the sign of countDirectio
n.
If <c>countDirection</c> &lt; 0, then files
{<c>File.1</c>, ..., <c>File.curSizeRollBackups -1</c>}
are renamed to {<c>File.2</c>, ...,
<c>File.curSizeRollBackups</c>}.
</para>
<para>
If <c>maxSizeRollBackups</c> is equal to zero, then the
<c>File</c> is truncated with no backup files created.
</para>
<para>
If <c>maxSizeRollBackups</c> &lt; 0, then <c>File</c> is
renamed if needed and no files are deleted.
</para>
<para>
This is called by <see cref="M:log4net.Appender.RollingFileAppender.
RollOverSize"/> to rename the files.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.RollingFileAppender.NextCheckDate(Syste
m.DateTime,log4net.Appender.RollingFileAppender.RollPoint)">
<summary>
Get the start time of the next window for the current rollpoint
</summary>
<param name="currentDateTime">the current date</param>
<param name="rollPoint">the type of roll point we are working with</
param>
<returns>the start time for the next roll point an interval after th
e currentDateTime date</returns>
<remarks>
<para>
Returns the date of the next roll point after the currentDateTime da
te passed to the method.
</para>
<para>
The basic strategy is to subtract the time parts that are less signi
ficant
than the rollpoint from the current time. This should roll the time
back to
the start of the time window for the current rollpoint. Then we add
1 window
worth of time and get the start time of the next window for the roll
point.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_dateTime">
<summary>
This object supplies the current date/time. Allows test code to plu
g in
a method to control this class when testing date/time based rolling.
The default
implementation uses the underlying value of DateTime.Now.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_datePattern">
<summary>
The date pattern. By default, the pattern is set to <c>".yyyy-MM-dd"
</c>
meaning daily rollover.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_scheduledFilename
">
<summary>
The actual formatted filename that is currently being written to
or will be the file transferred to on roll over
(based on staticLogFileName).
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_nextCheck">
<summary>
The timestamp when we shall next recompute the filename.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_now">
<summary>
Holds date of last roll over
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_rollPoint">
<summary>
The type of rolling done
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_maxFileSize">
<summary>
The default maximum file size is 10MB
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_maxSizeRollBackup
s">
<summary>
There is zero backup files by default
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_curSizeRollBackup
s">
<summary>
How many sized based backups have been made so far
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_countDirection">
<summary>
The rolling file count direction.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_rollingStyle">
<summary>
The rolling mode used in this appender.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_rollDate">
<summary>
Cache flag set if we are rolling by date.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_rollSize">
<summary>
Cache flag set if we are rolling by size.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_staticLogFileName
">
<summary>
Value indicating whether to always log to the same file.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_preserveLogFileNa
meExtension">
<summary>
Value indicating whether to preserve the file name extension when ro
lling.
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.m_baseFileName">
<summary>
FileName provided in configuration. Used for rolling properly
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.s_date1970">
<summary>
The 1st of January 1970 in UTC
</summary>
</member>
<member name="P:log4net.Appender.RollingFileAppender.DateTimeStrategy">
<summary>
Gets or sets the strategy for determining the current date and time.
The default
implementation is to use LocalDateTime which internally calls throug
h to DateTime.Now.
DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by spe
cifying
<see cref="T:log4net.Appender.RollingFileAppender.UniversalDateTime"
/>.
</summary>
<value>
An implementation of the <see cref="T:log4net.Appender.RollingFileAp
pender.IDateTime"/> interface which returns the current date and time.
</value>
<remarks>
<para>
Gets or sets the <see cref="T:log4net.Appender.RollingFileAppender.I
DateTime"/> used to return the current date and time.
</para>
<para>
There are two built strategies for determining the current date and
time,
<see cref="T:log4net.Appender.RollingFileAppender.LocalDateTime"/>
and <see cref="T:log4net.Appender.RollingFileAppender.UniversalDateT
ime"/>.
</para>
<para>
The default strategy is <see cref="T:log4net.Appender.RollingFileApp
ender.LocalDateTime"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.DatePattern">
<summary>
Gets or sets the date pattern to be used for generating file names
when rolling over on date.
</summary>
<value>
The date pattern to be used for generating file names when rolling
over on date.
</value>
<remarks>
<para>
Takes a string in the same format as expected by
<see cref="T:log4net.DateFormatter.SimpleDateFormatter"/>.
</para>
<para>
This property determines the rollover schedule when rolling over
on date.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.MaxSizeRollBackups"
>
<summary>
Gets or sets the maximum number of backup files that are kept before
the oldest is erased.
</summary>
<value>
The maximum number of backup files that are kept before the oldest i
s
erased.
</value>
<remarks>
<para>
If set to zero, then there will be no backup files and the log file
will be truncated when it reaches <see cref="P:log4net.Appender.Roll
ingFileAppender.MaxFileSize"/>.
</para>
<para>
If a negative number is supplied then no deletions will be made. No
te
that this could result in very slow performance as a large number of

files are rolled over unless <see cref="P:log4net.Appender.RollingFi
leAppender.CountDirection"/> is used.
</para>
<para>
The maximum applies to <b>each</b> time based group of files and
<b>not</b> the total.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.MaxFileSize">
<summary>
Gets or sets the maximum size that the output file is allowed to rea
ch
before being rolled over to backup files.
</summary>
<value>
The maximum size in bytes that the output file is allowed to reach b
efore being
rolled over to backup files.
</value>
<remarks>
<para>
This property is equivalent to <see cref="P:log4net.Appender.Rolling
FileAppender.MaximumFileSize"/> except
that it is required for differentiating the setter taking a
<see cref="T:System.Int64"/> argument from the setter taking a <see
cref="T:System.String"/>
argument.
</para>
<para>
The default maximum file size is 10MB (10*1024*1024).
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.MaximumFileSize">
<summary>
Gets or sets the maximum size that the output file is allowed to rea
ch
before being rolled over to backup files.
</summary>
<value>
The maximum size that the output file is allowed to reach before bei
ng
rolled over to backup files.
</value>
<remarks>
<para>
This property allows you to specify the maximum size with the
suffixes "KB", "MB" or "GB" so that the size is interpreted being
expressed respectively in kilobytes, megabytes or gigabytes.
</para>
<para>
For example, the value "10KB" will be interpreted as 10240 bytes.
</para>
<para>
The default maximum file size is 10MB.
</para>
<para>
If you have the option to set the maximum file size programmatically
consider using the <see cref="P:log4net.Appender.RollingFileAppender
.MaxFileSize"/> property instead as this
allows you to set the size in bytes as a <see cref="T:System.Int64"/
>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.CountDirection">
<summary>
Gets or sets the rolling file count direction.
</summary>
<value>
The rolling file count direction.
</value>
<remarks>
<para>
Indicates if the current file is the lowest numbered file or the
highest numbered file.
</para>
<para>
By default newer files have lower numbers (<see cref="P:log4net.Appe
nder.RollingFileAppender.CountDirection"/> &lt; 0),
i.e. log.1 is most recent, log.5 is the 5th backup, etc...
</para>
<para>
<see cref="P:log4net.Appender.RollingFileAppender.CountDirection"/>
&gt;= 0 does the opposite i.e.
log.1 is the first backup made, log.5 is the 5th backup made, etc.
For infinite backups use <see cref="P:log4net.Appender.RollingFileAp
pender.CountDirection"/> &gt;= 0 to reduce
rollover costs.
</para>
<para>The default file count direction is -1.</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.RollingStyle">
<summary>
Gets or sets the rolling style.
</summary>
<value>The rolling style.</value>
<remarks>
<para>
The default rolling style is <see cref="F:log4net.Appender.RollingFi
leAppender.RollingMode.Composite"/>.
</para>
<para>
When set to <see cref="F:log4net.Appender.RollingFileAppender.Rollin
gMode.Once"/> this appender's
<see cref="P:log4net.Appender.FileAppender.AppendToFile"/> property
is set to <c>false</c>, otherwise
the appender would append to a single file rather than rolling
the file each time it is opened.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.PreserveLogFileName
Extension">
<summary>
Gets or sets a value indicating whether to preserve the file name ex
tension when rolling.
</summary>
<value>
<c>true</c> if the file name extension should be preserved.
</value>
<remarks>
<para>
By default file.log is rolled to file.log.yyyy-MM-dd or file.log.cur
SizeRollBackup.
However, under Windows the new file name will loose any program asso
ciations as the
extension is changed. Optionally file.log can be renamed to file.yyy
y-MM-dd.log or
file.curSizeRollBackup.log to maintain any program associations.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.StaticLogFileName">
<summary>
Gets or sets a value indicating whether to always log to
the same file.
</summary>
<value>
<c>true</c> if always should be logged to the same file, otherwise <
c>false</c>.
</value>
<remarks>
<para>
By default file.log is always the current file. Optionally
file.log.yyyy-mm-dd for current formatted datePattern can by the cur
rently
logging file (or file.log.curSizeRollBackup or even
file.log.yyyy-mm-dd.curSizeRollBackup).
</para>
<para>
This will make time based rollovers with a large number of backups
much faster as the appender it won't have to rename all the backups!
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RollingFileAppender.RollingMode">
<summary>
Style of rolling to use
</summary>
<remarks>
<para>
Style of rolling to use
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollingMode.Once">
<summary>
Roll files once per program execution
</summary>
<remarks>
<para>
Roll files once per program execution.
Well really once each time this appender is
configured.
</para>
<para>
Setting this option also sets <c>AppendToFile</c> to
<c>false</c> on the <c>RollingFileAppender</c>, otherwise
this appender would just be a normal file appender.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollingMode.Size">
<summary>
Roll files based only on the size of the file
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollingMode.Date">
<summary>
Roll files based only on the date
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollingMode.Composi
te">
<summary>
Roll files based on both the size and date of the file
</summary>
</member>
<member name="T:log4net.Appender.RollingFileAppender.RollPoint">
<summary>
The code assumes that the following 'time' constants are in a increa
sing sequence.
</summary>
<remarks>
<para>
The code assumes that the following 'time' constants are in a increa
sing sequence.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.InvalidRo
llPoint">
<summary>
Roll the log not based on the date
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMinu
te">
<summary>
Roll the log for each minute
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfHour
">
<summary>
Roll the log for each hour
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.HalfDay">
<summary>
Roll the log twice a day (midday and midnight)
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfDay"
>
<summary>
Roll the log each day (midnight)
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfWeek
">
<summary>
Roll the log each week
</summary>
</member>
<member name="F:log4net.Appender.RollingFileAppender.RollPoint.TopOfMont
h">
<summary>
Roll the log each month
</summary>
</member>
<member name="T:log4net.Appender.RollingFileAppender.IDateTime">
<summary>
This interface is used to supply Date/Time information to the <see c
ref="T:log4net.Appender.RollingFileAppender"/>.
</summary>
<remarks>
This interface is used to supply Date/Time information to the <see c
ref="T:log4net.Appender.RollingFileAppender"/>.
Used primarily to allow test classes to plug themselves in so they c
an
supply test date/times.
</remarks>
</member>
<member name="P:log4net.Appender.RollingFileAppender.IDateTime.Now">
<summary>
Gets the <i>current</i> time.
</summary>
<value>The <i>current</i> time.</value>
<remarks>
<para>
Gets the <i>current</i> time.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RollingFileAppender.LocalDateTime">
<summary>
Default implementation of <see cref="T:log4net.Appender.RollingFileA
ppender.IDateTime"/> that returns the current time.
</summary>
</member>
<member name="P:log4net.Appender.RollingFileAppender.LocalDateTime.Now">
<summary>
Gets the <b>current</b> time.
</summary>
<value>The <b>current</b> time.</value>
<remarks>
<para>
Gets the <b>current</b> time.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.RollingFileAppender.UniversalDateTime">
<summary>
Implementation of <see cref="T:log4net.Appender.RollingFileAppender.
IDateTime"/> that returns the current time as the coordinated universal time (UT
C).
</summary>
</member>
<member name="P:log4net.Appender.RollingFileAppender.UniversalDateTime.N
ow">
<summary>
Gets the <b>current</b> time.
</summary>
<value>The <b>current</b> time.</value>
<remarks>
<para>
Gets the <b>current</b> time.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.SmtpAppender">
<summary>
Send an e-mail when a specific logging event occurs, typically on er
rors
or fatal errors.
</summary>
<remarks>
<para>
The number of logging events delivered in this e-mail depend on
the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton
.BufferSize"/> option. The
<see cref="T:log4net.Appender.SmtpAppender"/> keeps only the last
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/
> logging events in its
cyclic buffer. This keeps memory requirements at a reasonable level
while
still delivering useful application context.
</para>
<note type="caution">
Authentication and setting the server Port are only available on the
MS .NET 1.1 runtime.
For these features to be enabled you need to ensure that you are usi
ng a version of
the log4net assembly that is built against the MS .NET 1.1 framework
and that you are
running the your application on the MS .NET 1.1 runtime. On all othe
r platforms only sending
unauthenticated messages to a server listening on port 25 (the defau
lt) is supported.
</note>
<para>
Authentication is supported by setting the <see cref="P:log4net.Appe
nder.SmtpAppender.Authentication"/> property to
either <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication
.Basic"/> or <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"
/>.
If using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthenticati
on.Basic"/> authentication then the <see cref="P:log4net.Appender.SmtpAppender.U
sername"/>
and <see cref="P:log4net.Appender.SmtpAppender.Password"/> propertie
s must also be set.
</para>
<para>
To set the SMTP server port use the <see cref="P:log4net.Appender.Sm
tpAppender.Port"/> property. The default port is 25.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Appender.SmtpAppender.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Appender.SmtpAppender.SendBuffer(log4net.Core.Lo
ggingEvent[])">
<summary>
Sends the contents of the cyclic buffer as an e-mail message.
</summary>
<param name="events">The logging events to send.</param>
</member>
<member name="M:log4net.Appender.SmtpAppender.SendEmail(System.String)">
<summary>
Send the email message
</summary>
<param name="messageBody">the body text to include in the mail</para
m>
</member>
<member name="P:log4net.Appender.SmtpAppender.To">
<summary>
Gets or sets a comma- or semicolon-delimited list of recipient e-mai
l addresses (use semicolon on .NET 1.1 and comma for later versions).
</summary>
<value>
<para>
For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail
addresses.
</para>
<para>
For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail add
resses.
</para>
</value>
<remarks>
<para>
For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail
addresses.
</para>
<para>
For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail add
resses.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Cc">
<summary>
Gets or sets a comma- or semicolon-delimited list of recipient e-mai
l addresses
that will be carbon copied (use semicolon on .NET 1.1 and comma for
later versions).
</summary>
<value>
<para>
For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail
addresses.
</para>
<para>
For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail add
resses.
</para>
</value>
<remarks>
<para>
For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail
addresses.
</para>
<para>
For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail add
resses.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Bcc">
<summary>
Gets or sets a semicolon-delimited list of recipient e-mail addresse
s
that will be blind carbon copied.
</summary>
<value>
A semicolon-delimited list of e-mail addresses.
</value>
<remarks>
<para>
A semicolon-delimited list of recipient e-mail addresses.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.From">
<summary>
Gets or sets the e-mail address of the sender.
</summary>
<value>
The e-mail address of the sender.
</value>
<remarks>
<para>
The e-mail address of the sender.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Subject">
<summary>
Gets or sets the subject line of the e-mail message.
</summary>
<value>
The subject line of the e-mail message.
</value>
<remarks>
<para>
The subject line of the e-mail message.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.SmtpHost">
<summary>
Gets or sets the name of the SMTP relay mail server to use to send
the e-mail messages.
</summary>
<value>
The name of the e-mail relay server. If SmtpServer is not set, the
name of the local SMTP server is used.
</value>
<remarks>
<para>
The name of the e-mail relay server. If SmtpServer is not set, the
name of the local SMTP server is used.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.LocationInfo">
<summary>
Obsolete
</summary>
<remarks>
Use the BufferingAppenderSkeleton Fix methods instead
</remarks>
<remarks>
<para>
Obsolete property.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Authentication">
<summary>
The mode to use to authentication with the SMTP server
</summary>
<remarks>
<note type="caution">Authentication is only available on the MS .NET
1.1 runtime.</note>
<para>
Valid Authentication mode values are: <see cref="F:log4net.Appender.
SmtpAppender.SmtpAuthentication.None"/>,
<see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"
/>, and <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm"/>.
The default value is <see cref="F:log4net.Appender.SmtpAppender.Smtp
Authentication.None"/>. When using
<see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"
/> you must specify the <see cref="P:log4net.Appender.SmtpAppender.Username"/>
and <see cref="P:log4net.Appender.SmtpAppender.Password"/> to use to
authenticate.
When using <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentica
tion.Ntlm"/> the Windows credentials for the current
thread, if impersonating, or the process will be used to authenticat
e.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Username">
<summary>
The username to use to authenticate with the SMTP server
</summary>
<remarks>
<note type="caution">Authentication is only available on the MS .NET
1.1 runtime.</note>
<para>
A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cr
ef="P:log4net.Appender.SmtpAppender.Password"/> must be specified when
<see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set
to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>,
otherwise the username will be ignored.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Password">
<summary>
The password to use to authenticate with the SMTP server
</summary>
<remarks>
<note type="caution">Authentication is only available on the MS .NET
1.1 runtime.</note>
<para>
A <see cref="P:log4net.Appender.SmtpAppender.Username"/> and <see cr
ef="P:log4net.Appender.SmtpAppender.Password"/> must be specified when
<see cref="P:log4net.Appender.SmtpAppender.Authentication"/> is set
to <see cref="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic"/>,
otherwise the password will be ignored.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Port">
<summary>
The port on which the SMTP server is listening
</summary>
<remarks>
<note type="caution">Server Port is only available on the MS .NET 1.
1 runtime.</note>
<para>
The port on which the SMTP server is listening. The default
port is <c>25</c>. The Port can only be changed when running on
the MS .NET 1.1 runtime.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.Priority">
<summary>
Gets or sets the priority of the e-mail message
</summary>
<value>
One of the <see cref="T:System.Net.Mail.MailPriority"/> values.
</value>
<remarks>
<para>
Sets the priority of the e-mails generated by this
appender. The default priority is <see cref="F:System.Net.Mail.MailP
riority.Normal"/>.
</para>
<para>
If you are using this appender to report errors then
you may want to set the priority to <see cref="F:System.Net.Mail.Mai
lPriority.High"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.EnableSsl">
<summary>
Enable or disable use of SSL when sending e-mail message
</summary>
<remarks>
This is available on MS .NET 2.0 runtime and higher
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.ReplyTo">
<summary>
Gets or sets the reply-to e-mail address.
</summary>
<remarks>
This is available on MS .NET 2.0 runtime and higher
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.SubjectEncoding">
<summary>
Gets or sets the subject encoding to be used.
</summary>
<remarks>
The default encoding is the operating system's current ANSI codepage
.
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.BodyEncoding">
<summary>
Gets or sets the body encoding to be used.
</summary>
<remarks>
The default encoding is the operating system's current ANSI codepage
.
</remarks>
</member>
<member name="P:log4net.Appender.SmtpAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.SmtpAppender.SmtpAuthentication">
<summary>
Values for the <see cref="P:log4net.Appender.SmtpAppender.Authentica
tion"/> property.
</summary>
<remarks>
<para>
SMTP authentication modes.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.None">
<summary>
No authentication
</summary>
</member>
<member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Basic">
<summary>
Basic authentication.
</summary>
<remarks>
Requires a username and password to be supplied
</remarks>
</member>
<member name="F:log4net.Appender.SmtpAppender.SmtpAuthentication.Ntlm">
<summary>
Integrated authentication
</summary>
<remarks>
Uses the Windows credentials from the current thread or process to a
uthenticate.
</remarks>
</member>
<member name="T:log4net.Appender.SmtpPickupDirAppender">
<summary>
Send an email when a specific logging event occurs, typically on err
ors
or fatal errors. Rather than sending via smtp it writes a file into
the
directory specified by <see cref="P:log4net.Appender.SmtpPickupDirAp
pender.PickupDir"/>. This allows services such
as the IIS SMTP agent to manage sending the messages.
</summary>
<remarks>
<para>
The configuration for this appender is identical to that of the <c>S
MTPAppender</c>,
except that instead of specifying the <c>SMTPAppender.SMTPHost</c> y
ou specify
<see cref="P:log4net.Appender.SmtpPickupDirAppender.PickupDir"/>.
</para>
<para>
The number of logging events delivered in this e-mail depend on
the value of <see cref="P:log4net.Appender.BufferingAppenderSkeleton
.BufferSize"/> option. The
<see cref="T:log4net.Appender.SmtpPickupDirAppender"/> keeps only th
e last
<see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/
> logging events in its
cyclic buffer. This keeps memory requirements at a reasonable level
while
still delivering useful application context.
</para>
</remarks>
<author>Niall Daley</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.SmtpPickupDirAppender.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Appender.SmtpPickupDirAppender.SendBuffer(log4ne
t.Core.LoggingEvent[])">
<summary>
Sends the contents of the cyclic buffer as an e-mail message.
</summary>
<param name="events">The logging events to send.</param>
<remarks>
<para>
Sends the contents of the cyclic buffer as an e-mail message.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions">
<summary>
Activate the options on this appender.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.SmtpPickupDirAp
pender.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.SmtpPickupDirAppender.
ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.SmtpPickupDirAppender.ActivateOptions"
/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.SmtpPickupDirAppender.ConvertToFullPath
(System.String)">
<summary>
Convert a path into a fully qualified path.
</summary>
<param name="path">The path to convert.</param>
<returns>The fully qualified path.</returns>
<remarks>
<para>
Converts the path specified to a fully
qualified path. If the path is relative it is
taken as relative from the application base
directory.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.SmtpPickupDirAppender.m_securityContext
">
<summary>
The security context to use for privileged calls
</summary>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.To">
<summary>
Gets or sets a semicolon-delimited list of recipient e-mail addresse
s.
</summary>
<value>
A semicolon-delimited list of e-mail addresses.
</value>
<remarks>
<para>
A semicolon-delimited list of e-mail addresses.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.From">
<summary>
Gets or sets the e-mail address of the sender.
</summary>
<value>
The e-mail address of the sender.
</value>
<remarks>
<para>
The e-mail address of the sender.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.Subject">
<summary>
Gets or sets the subject line of the e-mail message.
</summary>
<value>
The subject line of the e-mail message.
</value>
<remarks>
<para>
The subject line of the e-mail message.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.PickupDir">
<summary>
Gets or sets the path to write the messages to.
</summary>
<remarks>
<para>
Gets or sets the path to write the messages to. This should be the s
ame
as that used by the agent sending the messages.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.SecurityContext">
<summary>
Gets or sets the <see cref="P:log4net.Appender.SmtpPickupDirAppender
.SecurityContext"/> used to write to the pickup directory.
</summary>
<value>
The <see cref="P:log4net.Appender.SmtpPickupDirAppender.SecurityCont
ext"/> used to write to the pickup directory.
</value>
<remarks>
<para>
Unless a <see cref="P:log4net.Appender.SmtpPickupDirAppender.Securit
yContext"/> specified here for this appender
the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvide
r"/> is queried for the
security context to use. The default behavior is to use the security
context
of the current thread.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.SmtpPickupDirAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.TelnetAppender">
<summary>
Appender that allows clients to connect via Telnet to receive log me
ssages
</summary>
<remarks>
<para>
The TelnetAppender accepts socket connections and streams logging me
ssages
back to the client.
The output is provided in a telnet-friendly way so that a log can be
monitored
over a TCP/IP socket.
This allows simple remote monitoring of application logging.
</para>
<para>
The default <see cref="P:log4net.Appender.TelnetAppender.Port"/> is
23 (the telnet port).
</para>
</remarks>
<author>Keith Long</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Appender.TelnetAppender.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="F:log4net.Appender.TelnetAppender.declaringType">
<summary>
The fully qualified type of the TelnetAppender class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.OnClose">
<summary>
Overrides the parent method to close the socket handler
</summary>
<remarks>
<para>
Closes all the outstanding connections.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.ActivateOptions">
<summary>
Initialize the appender based on the options set.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Appender.TelnetAppender.
ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Appender.TelnetAppender.Activat
eOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Appender.TelnetAppender.ActivateOptions"/> must
be called again.
</para>
<para>
Create the socket handler and wait for connections
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.Append(log4net.Core.Logg
ingEvent)">
<summary>
Writes the logging event to each connected client.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the logging event to each connected client.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TelnetAppender.Port">
<summary>
Gets or sets the TCP port number on which this <see cref="T:log4net.
Appender.TelnetAppender"/> will listen for connections.
</summary>
<value>
An integer value in the range <see cref="F:System.Net.IPEndPoint.Min
Port"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/>
indicating the TCP port number on which this <see cref="T:log4net.Ap
pender.TelnetAppender"/> will listen for connections.
</value>
<remarks>
<para>
The default value is 23 (the telnet port).
</para>
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The value spe
cified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/>
or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exce
ption>
</member>
<member name="P:log4net.Appender.TelnetAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.TelnetAppender.SocketHandler">
<summary>
Helper class to manage connected clients
</summary>
<remarks>
<para>
The SocketHandler class is used to accept connections from
clients. It is threaded so that clients can connect/disconnect
asynchronously.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.#ctor(Syst
em.Int32)">
<summary>
Opens a new server port on <paramref ref="port"/>
</summary>
<param name="port">the local port to listen on for connections</para
m>
<remarks>
<para>
Creates a socket handler on the specified local server port.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.Send(Syste
m.String)">
<summary>
Sends a string message to each of the connected clients
</summary>
<param name="message">the text to send</param>
<remarks>
<para>
Sends a string message to each of the connected clients
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.AddClient(
log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
<summary>
Add a client to the internal clients list
</summary>
<param name="client">client to add</param>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.RemoveClie
nt(log4net.Appender.TelnetAppender.SocketHandler.SocketClient)">
<summary>
Remove a client from the internal clients list
</summary>
<param name="client">client to remove</param>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.OnConnect(
System.IAsyncResult)">
<summary>
Callback used to accept a connection on the server socket
</summary>
<param name="asyncResult">The result of the asynchronous operation</
param>
<remarks>
<para>
On connection adds to the list of connections
if there are two many open connections you will be disconnected
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.Dispose">
<summary>
Close all network connections
</summary>
<remarks>
<para>
Make sure we close all network connections
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TelnetAppender.SocketHandler.HasConnect
ions">
<summary>
Test if this handler has active connections
</summary>
<value>
<c>true</c> if this handler has active connections
</value>
<remarks>
<para>
This property will be <c>true</c> while this handler has
active connections, that is at least one connection that
the handler will attempt to send a message to.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.TelnetAppender.SocketHandler.SocketClie
nt">
<summary>
Class that represents a client connected to this handler
</summary>
<remarks>
<para>
Class that represents a client connected to this handler
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClie
nt.#ctor(System.Net.Sockets.Socket)">
<summary>
Create this <see cref="T:log4net.Appender.TelnetAppender.SocketHandl
er.SocketClient"/> for the specified <see cref="T:System.Net.Sockets.Socket"/>
</summary>
<param name="socket">the client's socket</param>
<remarks>
<para>
Opens a stream writer on the socket.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClie
nt.Send(System.String)">
<summary>
Write a string to the client
</summary>
<param name="message">string to send</param>
<remarks>
<para>
Write a string to the client
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TelnetAppender.SocketHandler.SocketClie
nt.Dispose">
<summary>
Cleanup the clients connection
</summary>
<remarks>
<para>
Close the socket connection.
</para>
</remarks>
</member>
<member name="T:log4net.Appender.TraceAppender">
<summary>
Appends log events to the <see cref="T:System.Diagnostics.Trace"/> s
ystem.
</summary>
<remarks>
<para>
The application configuration file can be used to control what liste
ners
are actually used. See the MSDN documentation for the
<see cref="T:System.Diagnostics.Trace"/> class for details on config
uring the
trace system.
</para>
<para>
Events are written using the <c>System.Diagnostics.Trace.Write(strin
g,string)</c>
method. The event's logger name is the default value for the categor
y parameter
of the Write method.
</para>
<para>
<b>Compact Framework</b><br/>
The Compact Framework does not support the <see cref="T:System.Diagn
ostics.Trace"/>
class for any operation except <c>Assert</c>. When using the Compact
Framework this
appender will write to the <see cref="T:System.Diagnostics.Debug"/>
system rather than
the Trace system. This appender will therefore behave like the <see
cref="T:log4net.Appender.DebugAppender"/>.
</para>
</remarks>
<author>Douglas de la Torre</author>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Appender.TraceAppender.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Trac
eAppender"/>.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TraceAppender.#ctor(log4net.Layout.ILay
out)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Appender.Trac
eAppender"/>
with a specified layout.
</summary>
<param name="layout">The layout to use with this appender.</param>
<remarks>
<para>
Obsolete constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Appender.TraceAppender.Append(log4net.Core.Loggi
ngEvent)">
<summary>
Writes the logging event to the <see cref="T:System.Diagnostics.Trac
e"/> system.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Writes the logging event to the <see cref="T:System.Diagnostics.Trac
e"/> system.
</para>
</remarks>
</member>
<member name="F:log4net.Appender.TraceAppender.m_immediateFlush">
<summary>
Immediate flush means that the underlying writer or output stream
will be flushed at the end of each append operation.
</summary>
<remarks>
<para>
Immediate flush is slower but ensures that each append request is
actually written. If <see cref="P:log4net.Appender.TraceAppender.Imm
ediateFlush"/> is set to
<c>false</c>, then there is a good chance that the last few
logs events are not actually written to persistent media if and
when the application crashes.
</para>
<para>
The default value is <c>true</c>.</para>
</remarks>
</member>
<member name="F:log4net.Appender.TraceAppender.m_category">
<summary>
Defaults to %logger
</summary>
</member>
<member name="P:log4net.Appender.TraceAppender.ImmediateFlush">
<summary>
Gets or sets a value that indicates whether the appender will
flush at the end of each write.
</summary>
<remarks>
<para>The default behavior is to flush at the end of each
write. If the option is set to<c>false</c>, then the underlying
stream can defer writing to physical medium to a later time.
</para>
<para>
Avoiding the flush operation at the end of each append results
in a performance gain of 10 to 20 percent. However, there is safety
trade-off involved in skipping flushing. Indeed, when flushing is
skipped, then it is likely that the last few log events will not
be recorded on disk when the application exits. This is a high
price to pay even for a 20% performance gain.
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TraceAppender.Category">
<summary>
The category parameter sent to the Trace method.
</summary>
<remarks>
<para>
Defaults to %logger which will use the logger name of the current
<see cref="T:log4net.Core.LoggingEvent"/> as the category parameter.
</para>
<para>
</para>
</remarks>
</member>
<member name="P:log4net.Appender.TraceAppender.RequiresLayout">
<summary>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</summary>
<value><c>true</c></value>
<remarks>
<para>
This appender requires a <see cref="N:log4net.Layout"/> to be set.
</para>
</remarks>
</member>
<member name="T:log4net.Config.AliasDomainAttribute">
<summary>
Assembly level attribute that specifies a domain to alias to this as
sembly's repository.
</summary>
<remarks>
<para>
<b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute in
stead of AliasDomainAttribute.</b>
</para>
<para>
An assembly's logger repository is defined by its <see cref="T:log4n
et.Config.DomainAttribute"/>,
however this can be overridden by an assembly loaded before the targ
et assembly.
</para>
<para>
An assembly can alias another assembly's domain to its repository by
specifying this attribute with the name of the target domain.
</para>
<para>
This attribute can only be specified on the assembly and may be used
as many times as necessary to alias all the required domains.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Config.AliasRepositoryAttribute">
<summary>
Assembly level attribute that specifies a repository to alias to thi
s assembly's repository.
</summary>
<remarks>
<para>
An assembly's logger repository is defined by its <see cref="T:log4n
et.Config.RepositoryAttribute"/>,
however this can be overridden by an assembly loaded before the targ
et assembly.
</para>
<para>
An assembly can alias another assembly's repository to its repositor
y by
specifying this attribute with the name of the target repository.
</para>
<para>
This attribute can only be specified on the assembly and may be used
as many times as necessary to alias all the required repositories.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.AliasRepositoryAttribute.#ctor(System.Str
ing)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.AliasR
epositoryAttribute"/> class with
the specified repository to alias to this assembly's repository.
</summary>
<param name="name">The repository to alias to this assemby's reposit
ory.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Config.AliasR
epositoryAttribute"/> class with
the specified repository to alias to this assembly's repository.
</para>
</remarks>
</member>
<member name="P:log4net.Config.AliasRepositoryAttribute.Name">
<summary>
Gets or sets the repository to alias to this assemby's repository.
</summary>
<value>
The repository to alias to this assemby's repository.
</value>
<remarks>
<para>
The name of the repository to alias to this assemby's repository.
</para>
</remarks>
</member>
<member name="M:log4net.Config.AliasDomainAttribute.#ctor(System.String)
">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.AliasD
omainAttribute"/> class with
the specified domain to alias to this assembly's repository.
</summary>
<param name="name">The domain to alias to this assemby's repository.
</param>
<remarks>
<para>
Obsolete. Use <see cref="T:log4net.Config.AliasRepositoryAttribute"/
> instead of <see cref="T:log4net.Config.AliasDomainAttribute"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Config.BasicConfigurator">
<summary>
Use this class to quickly configure a <see cref="T:log4net.Repositor
y.Hierarchy.Hierarchy"/>.
</summary>
<remarks>
<para>
Allows very simple programmatic configuration of log4net.
</para>
<para>
Only one appender can be configured using this configurator.
The appender is set at the root of the hierarchy and all logging
events will be delivered to that appender.
</para>
<para>
Appenders can also implement the <see cref="T:log4net.Core.IOptionHa
ndler"/> interface. Therefore
they would require that the <see cref="M:log4net.Core.IOptionHandler
.ActivateOptions()"/> method
be called after the appenders properties have been configured.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Config.BasicConfigurator.declaringType">
<summary>
The fully qualified type of the BasicConfigurator class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.BasicC
onfigurator"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to prevent instantiation of this clas
s.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure">
<summary>
Initializes the log4net system with a default configuration.
</summary>
<remarks>
<para>
Initializes the log4net logging system using a <see cref="T:log4net.
Appender.ConsoleAppender"/>
that will write to <c>Console.Out</c>. The log messages are
formatted using the <see cref="T:log4net.Layout.PatternLayout"/> lay
out object
with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionP
attern"/>
layout style.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Appen
der.IAppender)">
<summary>
Initializes the log4net system using the specified appender.
</summary>
<param name="appender">The appender to use to log all logging events
.</param>
<remarks>
<para>
Initializes the log4net system using the specified appender.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Appen
der.IAppender[])">
<summary>
Initializes the log4net system using the specified appenders.
</summary>
<param name="appenders">The appenders to use to log all logging even
ts.</param>
<remarks>
<para>
Initializes the log4net system using the specified appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repos
itory.ILoggerRepository)">
<summary>
Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/>
with a default configuration.
</summary>
<param name="repository">The repository to configure.</param>
<remarks>
<para>
Initializes the specified repository using a <see cref="T:log4net.Ap
pender.ConsoleAppender"/>
that will write to <c>Console.Out</c>. The log messages are
formatted using the <see cref="T:log4net.Layout.PatternLayout"/> lay
out object
with the <see cref="F:log4net.Layout.PatternLayout.DetailConversionP
attern"/>
layout style.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repos
itory.ILoggerRepository,log4net.Appender.IAppender)">
<summary>
Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified appender.
</summary>
<param name="repository">The repository to configure.</param>
<param name="appender">The appender to use to log all logging events
.</param>
<remarks>
<para>
Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified appender.
</para>
</remarks>
</member>
<member name="M:log4net.Config.BasicConfigurator.Configure(log4net.Repos
itory.ILoggerRepository,log4net.Appender.IAppender[])">
<summary>
Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified appenders.
</summary>
<param name="repository">The repository to configure.</param>
<param name="appenders">The appenders to use to log all logging even
ts.</param>
<remarks>
<para>
Initializes the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified appender.
</para>
</remarks>
</member>
<member name="T:log4net.Config.ConfiguratorAttribute">
<summary>
Base class for all log4net configuration attributes.
</summary>
<remarks>
This is an abstract class that must be extended by
specific configurators. This attribute allows the
configurator to be parameterized by an assembly level
attribute.
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.ConfiguratorAttribute.#ctor(System.Int32)
">
<summary>
Constructor used by subclasses.
</summary>
<param name="priority">the ordering priority for this configurator</
param>
<remarks>
<para>
The <paramref name="priority"/> is used to order the configurator
attributes before they are invoked. Higher priority configurators ar
e executed
before lower priority ones.
</para>
</remarks>
</member>
<member name="M:log4net.Config.ConfiguratorAttribute.Configure(System.Re
flection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
for the specified assembly.
</summary>
<param name="sourceAssembly">The assembly that this attribute was de
fined on.</param>
<param name="targetRepository">The repository to configure.</param>
<remarks>
<para>
Abstract method implemented by a subclass. When this method is calle
d
the subclass should configure the <paramref name="targetRepository"/
>.
</para>
</remarks>
</member>
<member name="M:log4net.Config.ConfiguratorAttribute.CompareTo(System.Ob
ject)">
<summary>
Compare this instance to another ConfiguratorAttribute
</summary>
<param name="obj">the object to compare to</param>
<returns>see <see cref="M:System.IComparable.CompareTo(System.Object
)"/></returns>
<remarks>
<para>
Compares the priorities of the two <see cref="T:log4net.Config.Confi
guratorAttribute"/> instances.
Sorts by priority in descending order. Objects with the same priorit
y are
randomly ordered.
</para>
</remarks>
</member>
<member name="T:log4net.Config.DomainAttribute">
<summary>
Assembly level attribute that specifies the logging domain for the a
ssembly.
</summary>
<remarks>
<para>
<b>DomainAttribute is obsolete. Use RepositoryAttribute instead of D
omainAttribute.</b>
</para>
<para>
Assemblies are mapped to logging domains. Each domain has its own
logging repository. This attribute specified on the assembly control
s
the configuration of the domain. The <see cref="P:log4net.Config.Rep
ositoryAttribute.Name"/> property specifies the name
of the domain that this assembly is a part of. The <see cref="P:log4
net.Config.RepositoryAttribute.RepositoryType"/>
specifies the type of the repository objects to create for the domai
n. If
this attribute is not specified and a <see cref="P:log4net.Config.Re
positoryAttribute.Name"/> is not specified
then the assembly will be part of the default shared logging domain.
</para>
<para>
This attribute can only be specified on the assembly and may only be
used
once per assembly.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Config.RepositoryAttribute">
<summary>
Assembly level attribute that specifies the logging repository for t
he assembly.
</summary>
<remarks>
<para>
Assemblies are mapped to logging repository. This attribute specifie
d
on the assembly controls
the configuration of the repository. The <see cref="P:log4net.Config
.RepositoryAttribute.Name"/> property specifies the name
of the repository that this assembly is a part of. The <see cref="P:
log4net.Config.RepositoryAttribute.RepositoryType"/>
specifies the type of the <see cref="T:log4net.Repository.ILoggerRep
ository"/> object
to create for the assembly. If this attribute is not specified or a
<see cref="P:log4net.Config.RepositoryAttribute.Name"/>
is not specified then the assembly will be part of the default share
d logging repository.
</para>
<para>
This attribute can only be specified on the assembly and may only be
used
once per assembly.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.RepositoryAttribute.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.Reposi
toryAttribute"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Config.RepositoryAttribute.#ctor(System.String)"
>
<summary>
Initialize a new instance of the <see cref="T:log4net.Config.Reposit
oryAttribute"/> class
with the name of the repository.
</summary>
<param name="name">The name of the repository.</param>
<remarks>
<para>
Initialize the attribute with the name for the assembly's repository
.
</para>
</remarks>
</member>
<member name="P:log4net.Config.RepositoryAttribute.Name">
<summary>
Gets or sets the name of the logging repository.
</summary>
<value>
The string name to use as the name of the repository associated with
this
assembly.
</value>
<remarks>
<para>
This value does not have to be unique. Several assemblies can share
the
same repository. They will share the logging configuration of the re
pository.
</para>
</remarks>
</member>
<member name="P:log4net.Config.RepositoryAttribute.RepositoryType">
<summary>
Gets or sets the type of repository to create for this assembly.
</summary>
<value>
The type of repository to create for this assembly.
</value>
<remarks>
<para>
The type of the repository to create for the assembly.
The type must implement the <see cref="T:log4net.Repository.ILoggerR
epository"/>
interface.
</para>
<para>
This will be the type of repository created when
the repository is created. If multiple assemblies reference the
same repository then the repository is only created once using the
<see cref="P:log4net.Config.RepositoryAttribute.RepositoryType"/> of
the first assembly to call into the
repository.
</para>
</remarks>
</member>
<member name="M:log4net.Config.DomainAttribute.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.Domain
Attribute"/> class.
</summary>
<remarks>
<para>
Obsolete. Use RepositoryAttribute instead of DomainAttribute.
</para>
</remarks>
</member>
<member name="M:log4net.Config.DomainAttribute.#ctor(System.String)">
<summary>
Initialize a new instance of the <see cref="T:log4net.Config.DomainA
ttribute"/> class
with the name of the domain.
</summary>
<param name="name">The name of the domain.</param>
<remarks>
<para>
Obsolete. Use RepositoryAttribute instead of DomainAttribute.
</para>
</remarks>
</member>
<member name="T:log4net.Config.DOMConfigurator">
<summary>
Use this class to initialize the log4net environment using an Xml tr
ee.
</summary>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> us
ing an Xml tree.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.DOMConfigurator.#ctor">
<summary>
Private constructor
</summary>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure">
<summary>
Automatically configures the log4net system based on the
application's configuration settings.
</summary>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
Each application has a configuration file. This has the
same name as the application with '.config' appended.
This file is XML and calling this function prompts the
configurator to look in that file for a section called
<c>log4net</c> that contains the configuration data.
</remarks>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository)">
<summary>
Automatically configures the <see cref="T:log4net.Repository.ILogger
Repository"/> using settings
stored in the application's configuration file.
</summary>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
Each application has a configuration file. This has the
same name as the application with '.config' appended.
This file is XML and calling this function prompts the
configurator to look in that file for a section called
<c>log4net</c> that contains the configuration data.
</remarks>
<param name="repository">The repository to configure.</param>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(System.Xml.XmlE
lement)">
<summary>
Configures log4net using a <c>log4net</c> element
</summary>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
Loads the log4net configuration from the XML element
supplied as <paramref name="element"/>.
</remarks>
<param name="element">The element to parse.</param>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.Xml.XmlElement)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified XML
element.
</summary>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
Loads the log4net configuration from the XML element
supplied as <paramref name="element"/>.
</remarks>
<param name="repository">The repository to configure.</param>
<param name="element">The element to parse.</param>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.FileI
nfo)">
<summary>
Configures log4net using the specified configuration file.
</summary>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the log4net configuration data.
</para>
<para>
The log4net configuration file can possible be specified in the appl
ication's
configuration file (either <c>MyAppName.exe.config</c> for a
normal application on <c>Web.config</c> for an ASP.NET application).
</para>
<example>
The following example configures log4net using a configuration file,
of which the
location is stored in the application's configuration file :
</example>
<code lang="C#">
using log4net.Config;
using System.IO;
using System.Configuration;

...

DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSett
ings["log4net-config-file"]));
</code>
<para>
In the <c>.config</c> file, the path to the log4net can be specified
like this :
</para>
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net-config-file" value="log.config"/>
</appSettings>
</configuration>
</code>
</remarks>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(System.IO.Strea
m)">
<summary>
Configures log4net using the specified configuration file.
</summary>
<param name="configStream">A stream to load the XML configuration fr
om.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the log4net configuration data.
</para>
<para>
Note that this method will NOT close the stream parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.IO.FileInfo)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified configuration
file.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The log4net configuration file can possible be specified in the appl
ication's
configuration file (either <c>MyAppName.exe.config</c> for a
normal application on <c>Web.config</c> for an ASP.NET application).
</para>
<example>
The following example configures log4net using a configuration file,
of which the
location is stored in the application's configuration file :
</example>
<code lang="C#">
using log4net.Config;
using System.IO;
using System.Configuration;

...

DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSett
ings["log4net-config-file"]));
</code>
<para>
In the <c>.config</c> file, the path to the log4net can be specified
like this :
</para>
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net-config-file" value="log.config"/>
</appSettings>
</configuration>
</code>
</remarks>
</member>
<member name="M:log4net.Config.DOMConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.IO.Stream)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified configuration
file.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configStream">The stream to load the XML configuration
from.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
Note that this method will NOT close the stream parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(System.
IO.FileInfo)">
<summary>
Configures log4net using the file specified, monitors the file for c
hanges
and reloads the configuration if a change is detected.
</summary>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The configuration file will be monitored using a <see cref="T:System
.IO.FileSystemWatcher"/>
and depends on the behavior of that class.
</para>
<para>
For more information on how to configure log4net using
a separate configuration file, see <see cref="M:Configure(FileInfo)"
/>.
</para>
</remarks>
<seealso cref="M:Configure(FileInfo)"/>
</member>
<member name="M:log4net.Config.DOMConfigurator.ConfigureAndWatch(log4net
.Repository.ILoggerRepository,System.IO.FileInfo)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the file specified,
monitors the file for changes and reloads the configuration if a cha
nge
is detected.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
<b>DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMCo
nfigurator.</b>
</para>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The configuration file will be monitored using a <see cref="T:System
.IO.FileSystemWatcher"/>
and depends on the behavior of that class.
</para>
<para>
For more information on how to configure log4net using
a separate configuration file, see <see cref="M:Configure(FileInfo)"
/>.
</para>
</remarks>
<seealso cref="M:Configure(FileInfo)"/>
</member>
<member name="T:log4net.Config.DOMConfiguratorAttribute">
<summary>
Assembly level attribute to configure the <see cref="T:log4net.Confi
g.XmlConfigurator"/>.
</summary>
<remarks>
<para>
<b>AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute in
stead of AliasDomainAttribute.</b>
</para>
<para>
This attribute may only be used at the assembly scope and can only
be used once per assembly.
</para>
<para>
Use this attribute to configure the <see cref="T:log4net.Config.XmlC
onfigurator"/>
without calling one of the <see cref="M:XmlConfigurator.Configure()"
/>
methods.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Config.XmlConfiguratorAttribute">
<summary>
Assembly level attribute to configure the <see cref="T:log4net.Confi
g.XmlConfigurator"/>.
</summary>
<remarks>
<para>
This attribute may only be used at the assembly scope and can only
be used once per assembly.
</para>
<para>
Use this attribute to configure the <see cref="T:log4net.Config.XmlC
onfigurator"/>
without calling one of the <see cref="M:XmlConfigurator.Configure()"
/>
methods.
</para>
<para>
If neither of the <see cref="P:log4net.Config.XmlConfiguratorAttribu
te.ConfigFile"/> or <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigF
ileExtension"/>
properties are set the configuration is loaded from the application'
s .config file.
If set the <see cref="P:log4net.Config.XmlConfiguratorAttribute.Conf
igFile"/> property takes priority over the
<see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExten
sion"/> property. The <see cref="P:log4net.Config.XmlConfiguratorAttribute.Confi
gFile"/> property
specifies a path to a file to load the config from. The path is rela
tive to the
application's base directory; <see cref="P:System.AppDomain.BaseDire
ctory"/>.
The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileE
xtension"/> property is used as a postfix to the assembly file name.
The config file must be located in the application's base directory
; <see cref="P:System.AppDomain.BaseDirectory"/>.
For example in a console application setting the <see cref="P:log4ne
t.Config.XmlConfiguratorAttribute.ConfigFileExtension"/> to
<c>config</c> has the same effect as not specifying the <see cref="P
:log4net.Config.XmlConfiguratorAttribute.ConfigFile"/> or
<see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExten
sion"/> properties.
</para>
<para>
The <see cref="P:log4net.Config.XmlConfiguratorAttribute.Watch"/> pr
operty can be set to cause the <see cref="T:log4net.Config.XmlConfigurator"/>
to watch the configuration file for changes.
</para>
<note>
<para>
Log4net will only look for assembly level configuration attributes o
nce.
When using the log4net assembly level attributes to control the conf
iguration
of log4net you must ensure that the first call to any of the
<see cref="T:log4net.Core.LoggerManager"/> methods is made from the
assembly with the configuration
attributes.
</para>
<para>
If you cannot guarantee the order in which log4net calls will be mad
e from
different assemblies you must use programmatic configuration instead
, i.e.
call the <see cref="M:XmlConfigurator.Configure()"/> method directly
.
</para>
</note>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.XmlConfiguratorAttribute.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfiguratorAttribute.Configure(System
.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
for the specified assembly.
</summary>
<param name="sourceAssembly">The assembly that this attribute was de
fined on.</param>
<param name="targetRepository">The repository to configure.</param>
<remarks>
<para>
Configure the repository using the <see cref="T:log4net.Config.XmlCo
nfigurator"/>.
The <paramref name="targetRepository"/> specified must extend the <s
ee cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
class otherwise the <see cref="T:log4net.Config.XmlConfigurator"/> w
ill not be able to
configure it.
</para>
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref
name="targetRepository"/> does not extend <see cref="T:log4net.Repository.Hiera
rchy.Hierarchy"/>.</exception>
</member>
<member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFil
e(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Attempt to load configuration from the local file system
</summary>
<param name="sourceAssembly">The assembly that this attribute was de
fined on.</param>
<param name="targetRepository">The repository to configure.</param>
</member>
<member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromFil
e(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
<summary>
Configure the specified repository using a <see cref="T:System.IO.Fi
leInfo"/>
</summary>
<param name="targetRepository">The repository to configure.</param>
<param name="configFile">the FileInfo pointing to the config file</p
aram>
</member>
<member name="M:log4net.Config.XmlConfiguratorAttribute.ConfigureFromUri
(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Attempt to load configuration from a URI
</summary>
<param name="sourceAssembly">The assembly that this attribute was de
fined on.</param>
<param name="targetRepository">The repository to configure.</param>
</member>
<member name="F:log4net.Config.XmlConfiguratorAttribute.declaringType">
<summary>
The fully qualified type of the XmlConfiguratorAttribute class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile">
<summary>
Gets or sets the filename of the configuration file.
</summary>
<value>
The filename of the configuration file.
</value>
<remarks>
<para>
If specified, this is the name of the configuration file to use with
the <see cref="T:log4net.Config.XmlConfigurator"/>. This file path i
s relative to the
<b>application base</b> directory (<see cref="P:System.AppDomain.Bas
eDirectory"/>).
</para>
<para>
The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"
/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.
ConfigFileExtension"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Config.XmlConfiguratorAttribute.ConfigFileExtens
ion">
<summary>
Gets or sets the extension of the configuration file.
</summary>
<value>
The extension of the configuration file.
</value>
<remarks>
<para>
If specified this is the extension for the configuration file.
The path to the config file is built by using the <b>application
base</b> directory (<see cref="P:System.AppDomain.BaseDirectory"/>),
the <b>assembly file name</b> and the config file extension.
</para>
<para>
If the <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFi
leExtension"/> is set to <c>MyExt</c> then
possible config file names would be: <c>MyConsoleApp.exe.MyExt</c> o
r
<c>MyClassLibrary.dll.MyExt</c>.
</para>
<para>
The <see cref="P:log4net.Config.XmlConfiguratorAttribute.ConfigFile"
/> takes priority over the <see cref="P:log4net.Config.XmlConfiguratorAttribute.
ConfigFileExtension"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Config.XmlConfiguratorAttribute.Watch">
<summary>
Gets or sets a value indicating whether to watch the configuration f
ile.
</summary>
<value>
<c>true</c> if the configuration should be watched, <c>false</c> oth
erwise.
</value>
<remarks>
<para>
If this flag is specified and set to <c>true</c> then the framework
will watch the configuration file and will reload the config each ti
me
the file is modified.
</para>
<para>
The config file can only be watched if it is loaded from local disk.
In a No-Touch (Smart Client) deployment where the application is dow
nloaded
from a web server the config file may not reside on the local disk
and therefore it may not be able to watch it.
</para>
<note>
Watching configuration is not supported on the SSCLI.
</note>
</remarks>
</member>
<member name="T:log4net.Config.Log4NetConfigurationSectionHandler">
<summary>
Class to register for the log4net section of the configuration file
</summary>
<remarks>
The log4net section of the configuration file needs to have a sectio
n
handler registered. This is the section handler used. It simply retu
rns
the XML element that is the root of the section.
</remarks>
<example>
Example of registering the log4net section handler :
<code lang="XML" escaped="true">
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConf
igurationSectionHandler, log4net" />
</configSections>
<log4net>
log4net configuration XML goes here
</log4net>
</configuration>
</code>
</example>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.Log4NetConfigurationSectionHandler.#ctor"
>
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.Log4Ne
tConfigurationSectionHandler"/> class.
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.Config.Log4NetConfigurationSectionHandler.Create
(System.Object,System.Object,System.Xml.XmlNode)">
<summary>
Parses the configuration section.
</summary>
<param name="parent">The configuration settings in a corresponding p
arent configuration section.</param>
<param name="configContext">The configuration context when called fr
om the ASP.NET configuration system. Otherwise, this parameter is reserved and i
s a null reference.</param>
<param name="section">The <see cref="T:System.Xml.XmlNode"/> for the
log4net section.</param>
<returns>The <see cref="T:System.Xml.XmlNode"/> for the log4net sect
ion.</returns>
<remarks>
<para>
Returns the <see cref="T:System.Xml.XmlNode"/> containing the config
uration data,
</para>
</remarks>
</member>
<member name="T:log4net.Config.PluginAttribute">
<summary>
Assembly level attribute that specifies a plugin to attach to
the repository.
</summary>
<remarks>
<para>
Specifies the type of a plugin to create and attach to the
assembly's repository. The plugin type must implement the
<see cref="T:log4net.Plugin.IPlugin"/> interface.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Plugin.IPluginFactory">
<summary>
Interface used to create plugins.
</summary>
<remarks>
<para>
Interface used to create a plugin.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Plugin.IPluginFactory.CreatePlugin">
<summary>
Creates the plugin object.
</summary>
<returns>the new plugin instance</returns>
<remarks>
<para>
Create and return a new plugin instance.
</para>
</remarks>
</member>
<member name="M:log4net.Config.PluginAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.Plugin
Attribute"/> class
with the specified type.
</summary>
<param name="typeName">The type name of plugin to create.</param>
<remarks>
<para>
Create the attribute with the plugin type specified.
</para>
<para>
Where possible use the constructor that takes a <see cref="T:System.
Type"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Config.PluginAttribute.#ctor(System.Type)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.Plugin
Attribute"/> class
with the specified type.
</summary>
<param name="type">The type of plugin to create.</param>
<remarks>
<para>
Create the attribute with the plugin type specified.
</para>
</remarks>
</member>
<member name="M:log4net.Config.PluginAttribute.CreatePlugin">
<summary>
Creates the plugin object defined by this attribute.
</summary>
<remarks>
<para>
Creates the instance of the <see cref="T:log4net.Plugin.IPlugin"/> o
bject as
specified by this attribute.
</para>
</remarks>
<returns>The plugin object.</returns>
</member>
<member name="M:log4net.Config.PluginAttribute.ToString">
<summary>
Returns a representation of the properties of this object.
</summary>
<remarks>
<para>
Overrides base class <see cref="M:Object.ToString()" /> method to
return a representation of the properties of this object.
</para>
</remarks>
<returns>A representation of the properties of this object</returns>
</member>
<member name="P:log4net.Config.PluginAttribute.Type">
<summary>
Gets or sets the type for the plugin.
</summary>
<value>
The type for the plugin.
</value>
<remarks>
<para>
The type for the plugin.
</para>
</remarks>
</member>
<member name="P:log4net.Config.PluginAttribute.TypeName">
<summary>
Gets or sets the type name for the plugin.
</summary>
<value>
The type name for the plugin.
</value>
<remarks>
<para>
The type name for the plugin.
</para>
<para>
Where possible use the <see cref="P:log4net.Config.PluginAttribute.T
ype"/> property instead.
</para>
</remarks>
</member>
<member name="T:log4net.Config.SecurityContextProviderAttribute">
<summary>
Assembly level attribute to configure the <see cref="T:log4net.Core.
SecurityContextProvider"/>.
</summary>
<remarks>
<para>
This attribute may only be used at the assembly scope and can only
be used once per assembly.
</para>
<para>
Use this attribute to configure the <see cref="T:log4net.Config.XmlC
onfigurator"/>
without calling one of the <see cref="M:XmlConfigurator.Configure()"
/>
methods.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Config.SecurityContextProviderAttribute.#ctor(Sy
stem.Type)">
<summary>
Construct provider attribute with type specified
</summary>
<param name="providerType">the type of the provider to use</param>
<remarks>
<para>
The provider specified must subclass the <see cref="T:log4net.Core.S
ecurityContextProvider"/>
class.
</para>
</remarks>
</member>
<member name="M:log4net.Config.SecurityContextProviderAttribute.Configur
e(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Configures the SecurityContextProvider
</summary>
<param name="sourceAssembly">The assembly that this attribute was de
fined on.</param>
<param name="targetRepository">The repository to configure.</param>
<remarks>
<para>
Creates a provider instance from the <see cref="P:log4net.Config.Sec
urityContextProviderAttribute.ProviderType"/> specified.
Sets this as the default security context provider <see cref="P:log4
net.Core.SecurityContextProvider.DefaultProvider"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Config.SecurityContextProviderAttribute.declarin
gType">
<summary>
The fully qualified type of the SecurityContextProviderAttribute cla
ss.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Config.SecurityContextProviderAttribute.Provider
Type">
<summary>
Gets or sets the type of the provider to use.
</summary>
<value>
the type of the provider to use.
</value>
<remarks>
<para>
The provider specified must subclass the <see cref="T:log4net.Core.S
ecurityContextProvider"/>
class.
</para>
</remarks>
</member>
<member name="T:log4net.Config.XmlConfigurator">
<summary>
Use this class to initialize the log4net environment using an Xml tr
ee.
</summary>
<remarks>
<para>
Configures a <see cref="T:log4net.Repository.ILoggerRepository"/> us
ing an Xml tree.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Config.XmlConfigurator.#ctor">
<summary>
Private constructor
</summary>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure">
<summary>
Automatically configures the log4net system based on the
application's configuration settings.
</summary>
<remarks>
<para>
Each application has a configuration file. This has the
same name as the application with '.config' appended.
This file is XML and calling this function prompts the
configurator to look in that file for a section called
<c>log4net</c> that contains the configuration data.
</para>
<para>
To use this method to configure log4net you must specify
the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/
> section
handler for the <c>log4net</c> configuration section. See the
<see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> fo
r an example.
</para>
</remarks>
<seealso cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/
>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository)">
<summary>
Automatically configures the <see cref="T:log4net.Repository.ILogger
Repository"/> using settings
stored in the application's configuration file.
</summary>
<remarks>
<para>
Each application has a configuration file. This has the
same name as the application with '.config' appended.
This file is XML and calling this function prompts the
configurator to look in that file for a section called
<c>log4net</c> that contains the configuration data.
</para>
<para>
To use this method to configure log4net you must specify
the <see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/
> section
handler for the <c>log4net</c> configuration section. See the
<see cref="T:log4net.Config.Log4NetConfigurationSectionHandler"/> fo
r an example.
</para>
</remarks>
<param name="repository">The repository to configure.</param>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(System.Xml.XmlE
lement)">
<summary>
Configures log4net using a <c>log4net</c> element
</summary>
<remarks>
<para>
Loads the log4net configuration from the XML element
supplied as <paramref name="element"/>.
</para>
</remarks>
<param name="element">The element to parse.</param>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.Xml.XmlElement)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified XML
element.
</summary>
<remarks>
Loads the log4net configuration from the XML element
supplied as <paramref name="element"/>.
</remarks>
<param name="repository">The repository to configure.</param>
<param name="element">The element to parse.</param>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.FileI
nfo)">
<summary>
Configures log4net using the specified configuration file.
</summary>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the log4net configuration data.
</para>
<para>
The log4net configuration file can possible be specified in the appl
ication's
configuration file (either <c>MyAppName.exe.config</c> for a
normal application on <c>Web.config</c> for an ASP.NET application).
</para>
<para>
The first element matching <c>&lt;configuration&gt;</c> will be read
as the
configuration. If this file is also a .NET .config file then you mus
t specify
a configuration section for the <c>log4net</c> element otherwise .NE
T will
complain. Set the type for the section handler to <see cref="T:Syste
m.Configuration.IgnoreSectionHandler"/>, for example:
<code lang="XML" escaped="true">
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSection
Handler"/>
</configSections>
</code>
</para>
<example>
The following example configures log4net using a configuration file,
of which the
location is stored in the application's configuration file :
</example>
<code lang="C#">
using log4net.Config;
using System.IO;
using System.Configuration;

...

XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSett
ings["log4net-config-file"]));
</code>
<para>
In the <c>.config</c> file, the path to the log4net can be specified
like this :
</para>
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net-config-file" value="log.config"/>
</appSettings>
</configuration>
</code>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(System.Uri)">
<summary>
Configures log4net using the specified configuration URI.
</summary>
<param name="configUri">A URI to load the XML configuration from.</p
aram>
<remarks>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the log4net configuration data.
</para>
<para>
The <see cref="T:System.Net.WebRequest"/> must support the URI schem
e specified.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(System.IO.Strea
m)">
<summary>
Configures log4net using the specified configuration data stream.
</summary>
<param name="configStream">A stream to load the XML configuration fr
om.</param>
<remarks>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the log4net configuration data.
</para>
<para>
Note that this method will NOT close the stream parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.IO.FileInfo)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified configuration
file.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The log4net configuration file can possible be specified in the appl
ication's
configuration file (either <c>MyAppName.exe.config</c> for a
normal application on <c>Web.config</c> for an ASP.NET application).
</para>
<para>
The first element matching <c>&lt;configuration&gt;</c> will be read
as the
configuration. If this file is also a .NET .config file then you mus
t specify
a configuration section for the <c>log4net</c> element otherwise .NE
T will
complain. Set the type for the section handler to <see cref="T:Syste
m.Configuration.IgnoreSectionHandler"/>, for example:
<code lang="XML" escaped="true">
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSection
Handler"/>
</configSections>
</code>
</para>
<example>
The following example configures log4net using a configuration file,
of which the
location is stored in the application's configuration file :
</example>
<code lang="C#">
using log4net.Config;
using System.IO;
using System.Configuration;

...

XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSett
ings["log4net-config-file"]));
</code>
<para>
In the <c>.config</c> file, the path to the log4net can be specified
like this :
</para>
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net-config-file" value="log.config"/>
</appSettings>
</configuration>
</code>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.Uri)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified configuration
URI.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configUri">A URI to load the XML configuration from.</p
aram>
<remarks>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The <see cref="T:System.Net.WebRequest"/> must support the URI schem
e specified.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.Configure(log4net.Reposit
ory.ILoggerRepository,System.IO.Stream)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the specified configuration
file.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configStream">The stream to load the XML configuration
from.</param>
<remarks>
<para>
The configuration data must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
Note that this method will NOT close the stream parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(System.
IO.FileInfo)">
<summary>
Configures log4net using the file specified, monitors the file for c
hanges
and reloads the configuration if a change is detected.
</summary>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The configuration file will be monitored using a <see cref="T:System
.IO.FileSystemWatcher"/>
and depends on the behavior of that class.
</para>
<para>
For more information on how to configure log4net using
a separate configuration file, see <see cref="M:Configure(FileInfo)"
/>.
</para>
</remarks>
<seealso cref="M:Configure(FileInfo)"/>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatch(log4net
.Repository.ILoggerRepository,System.IO.FileInfo)">
<summary>
Configures the <see cref="T:log4net.Repository.ILoggerRepository"/>
using the file specified,
monitors the file for changes and reloads the configuration if a cha
nge
is detected.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configFile">The XML file to load the configuration from
.</param>
<remarks>
<para>
The configuration file must be valid XML. It must contain
at least one element called <c>log4net</c> that holds
the configuration data.
</para>
<para>
The configuration file will be monitored using a <see cref="T:System
.IO.FileSystemWatcher"/>
and depends on the behavior of that class.
</para>
<para>
For more information on how to configure log4net using
a separate configuration file, see <see cref="M:Configure(FileInfo)"
/>.
</para>
</remarks>
<seealso cref="M:Configure(FileInfo)"/>
</member>
<member name="M:log4net.Config.XmlConfigurator.InternalConfigureFromXml(
log4net.Repository.ILoggerRepository,System.Xml.XmlElement)">
<summary>
Configures the specified repository using a <c>log4net</c> element.
</summary>
<param name="repository">The hierarchy to configure.</param>
<param name="element">The element to parse.</param>
<remarks>
<para>
Loads the log4net configuration from the XML element
supplied as <paramref name="element"/>.
</para>
<para>
This method is ultimately called by one of the Configure methods
to load the configuration from an <see cref="T:System.Xml.XmlElement
"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Config.XmlConfigurator.m_repositoryName2ConfigAn
dWatchHandler">
<summary>
Maps repository names to ConfigAndWatchHandler instances to allow a
particular
ConfigAndWatchHandler to dispose of its FileSystemWatcher when a rep
ository is
reconfigured.
</summary>
</member>
<member name="F:log4net.Config.XmlConfigurator.declaringType">
<summary>
The fully qualified type of the XmlConfigurator class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler"
>
<summary>
Class used to watch config files.
</summary>
<remarks>
<para>
Uses the <see cref="T:System.IO.FileSystemWatcher"/> to monitor
changes to a specified file. Because multiple change notifications
may be raised when the file is modified, a timer is used to
compress the notifications into a single event. The timer
waits for <see cref="F:log4net.Config.XmlConfigurator.ConfigureAndWa
tchHandler.TimeoutMillis"/> time before delivering
the event notification. If any further <see cref="T:System.IO.FileSy
stemWatcher"/>
change notifications arrive while the timer is waiting it
is reset and waits again for <see cref="F:log4net.Config.XmlConfigur
ator.ConfigureAndWatchHandler.TimeoutMillis"/> to
elapse.
</para>
</remarks>
</member>
<member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
TimeoutMillis">
<summary>
The default amount of time to wait after receiving notification
before reloading the config file.
</summary>
</member>
<member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
m_configFile">
<summary>
Holds the FileInfo used to configure the XmlConfigurator
</summary>
</member>
<member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
m_repository">
<summary>
Holds the repository being configured.
</summary>
</member>
<member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
m_timer">
<summary>
The timer used to compress the notification events.
</summary>
</member>
<member name="F:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
m_watcher">
<summary>
Watches file for changes. This object should be disposed when no lon
ger
needed to free system handles on the watched resources.
</summary>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
#ctor(log4net.Repository.ILoggerRepository,System.IO.FileInfo)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Config.XmlCon
figurator.ConfigureAndWatchHandler"/> class to
watch a specified config file used to configure a repository.
</summary>
<param name="repository">The repository to configure.</param>
<param name="configFile">The configuration file to watch.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Config.XmlCon
figurator.ConfigureAndWatchHandler"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
ConfigureAndWatchHandler_OnChanged(System.Object,System.IO.FileSystemEventArgs)"
>
<summary>
Event handler used by <see cref="T:log4net.Config.XmlConfigurator.Co
nfigureAndWatchHandler"/>.
</summary>
<param name="source">The <see cref="T:System.IO.FileSystemWatcher"/>
firing the event.</param>
<param name="e">The argument indicates the file that caused the even
t to be fired.</param>
<remarks>
<para>
This handler reloads the configuration from the file when the event
is fired.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
ConfigureAndWatchHandler_OnRenamed(System.Object,System.IO.RenamedEventArgs)">
<summary>
Event handler used by <see cref="T:log4net.Config.XmlConfigurator.Co
nfigureAndWatchHandler"/>.
</summary>
<param name="source">The <see cref="T:System.IO.FileSystemWatcher"/>
firing the event.</param>
<param name="e">The argument indicates the file that caused the even
t to be fired.</param>
<remarks>
<para>
This handler reloads the configuration from the file when the event
is fired.
</para>
</remarks>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
OnWatchedFileChange(System.Object)">
<summary>
Called by the timer when the configuration has been updated.
</summary>
<param name="state">null</param>
</member>
<member name="M:log4net.Config.XmlConfigurator.ConfigureAndWatchHandler.
Dispose">
<summary>
Release the handles held by the watcher and timer.
</summary>
</member>
<member name="T:log4net.Core.CompactRepositorySelector">
<summary>
The implementation of the <see cref="T:log4net.Core.IRepositorySelec
tor"/> interface suitable
for use with the compact framework
</summary>
<remarks>
<para>
This <see cref="T:log4net.Core.IRepositorySelector"/> implementation
is a simple
mapping between repository name and <see cref="T:log4net.Repository.
ILoggerRepository"/>
object.
</para>
<para>
The .NET Compact Framework 1.0 does not support retrieving assembly
level attributes therefore unlike the <c>DefaultRepositorySelector</
c>
this selector does not examine the calling assembly for attributes.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Core.IRepositorySelector">
<summary>
Interface used by the <see cref="T:log4net.LogManager"/> to select t
he <see cref="T:log4net.Repository.ILoggerRepository"/>.
</summary>
<remarks>
<para>
The <see cref="T:log4net.LogManager"/> uses a <see cref="T:log4net.C
ore.IRepositorySelector"/>
to specify the policy for selecting the correct <see cref="T:log4net
.Repository.ILoggerRepository"/>
to return to the caller.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.IRepositorySelector.GetRepository(System.Re
flection.Assembly)">
<summary>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e specified assembly.
</summary>
<param name="assembly">The assembly to use to lookup to the <see cre
f="T:log4net.Repository.ILoggerRepository"/></param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> fo
r the assembly.</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e specified assembly.
</para>
<para>
How the association between <see cref="T:System.Reflection.Assembly"
/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
is made is not defined. The implementation may choose any method for
this association. The results of this method must be repeatable, i.e
.
when called again with the same arguments the result must be the
save value.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IRepositorySelector.GetRepository(System.St
ring)">
<summary>
Gets the named <see cref="T:log4net.Repository.ILoggerRepository"/>.
</summary>
<param name="repositoryName">The name to use to lookup to the <see c
ref="T:log4net.Repository.ILoggerRepository"/>.</param>
<returns>The named <see cref="T:log4net.Repository.ILoggerRepository
"/></returns>
<remarks>
Lookup a named <see cref="T:log4net.Repository.ILoggerRepository"/>.
This is the repository created by
calling <see cref="M:CreateRepository(string,Type)"/>.
</remarks>
</member>
<member name="M:log4net.Core.IRepositorySelector.CreateRepository(System
.Reflection.Assembly,System.Type)">
<summary>
Creates a new repository for the assembly specified.
</summary>
<param name="assembly">The assembly to use to create the domain to a
ssociate with the <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<param name="repositoryType">The type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<returns>The repository created.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the domain
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
<para>
How the association between <see cref="T:System.Reflection.Assembly"
/> and <see cref="T:log4net.Repository.ILoggerRepository"/>
is made is not defined. The implementation may choose any method for
this association.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IRepositorySelector.CreateRepository(System
.String,System.Type)">
<summary>
Creates a new repository with the name specified.
</summary>
<param name="repositoryName">The name to associate with the <see cre
f="T:log4net.Repository.ILoggerRepository"/>.</param>
<param name="repositoryType">The type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<returns>The repository created.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the name
specified such that a call to <see cref="M:GetRepository(string)"/>
with the
same name will return the same repository instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IRepositorySelector.ExistsRepository(System
.String)">
<summary>
Test if a named repository exists
</summary>
<param name="repositoryName">the named repository to check</param>
<returns><c>true</c> if the repository exists</returns>
<remarks>
<para>
Test if a named repository exists. Use <see cref="M:CreateRepository
(Assembly, Type)"/>
to create a new repository and <see cref="M:GetRepository(Assembly)"
/> to retrieve
a repository.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IRepositorySelector.GetAllRepositories">
<summary>
Gets an array of all currently defined repositories.
</summary>
<returns>
An array of the <see cref="T:log4net.Repository.ILoggerRepository"/>
instances created by
this <see cref="T:log4net.Core.IRepositorySelector"/>.</returns>
<remarks>
<para>
Gets an array of all of the repositories created by this selector.
</para>
</remarks>
</member>
<member name="E:log4net.Core.IRepositorySelector.LoggerRepositoryCreated
Event">
<summary>
Event to notify that a logger repository has been created.
</summary>
<value>
Event to notify that a logger repository has been created.
</value>
<remarks>
<para>
Event raised when a new repository is created.
The event source will be this selector. The event args will
be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/>
which
holds the newly created <see cref="T:log4net.Repository.ILoggerRepos
itory"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.#ctor(System.Type
)">
<summary>
Create a new repository selector
</summary>
<param name="defaultRepositoryType">the type of the repositories to
create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></par
am>
<remarks>
<para>
Create an new compact repository selector.
The default type for repositories must be specified,
an appropriate value would be <see cref="T:log4net.Repository.Hierar
chy.Hierarchy"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">throw if <paramref
name="defaultRepositoryType"/> is null</exception>
<exception cref="T:System.ArgumentOutOfRangeException">throw if <par
amref name="defaultRepositoryType"/> does not implement <see cref="T:log4net.Rep
ository.ILoggerRepository"/></exception>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.GetRepository(Sys
tem.Reflection.Assembly)">
<summary>
Get the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
specified assembly
</summary>
<param name="assembly">not used</param>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/></returns>
<remarks>
<para>
The <paramref name="assembly"/> argument is not used. This selector
does not create a
separate repository for each assembly.
</para>
<para>
As a named repository is not specified the default repository is
returned. The default repository is named <c>log4net-default-reposit
ory</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.GetRepository(Sys
tem.String)">
<summary>
Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>
</summary>
<param name="repositoryName">the name of the repository to lookup</p
aram>
<returns>The named <see cref="T:log4net.Repository.ILoggerRepository
"/></returns>
<remarks>
<para>
Get the named <see cref="T:log4net.Repository.ILoggerRepository"/>.
The default
repository is <c>log4net-default-repository</c>. Other repositories
must be created using the <see cref="M:CreateRepository(string, Type
)"/>.
If the named repository does not exist an exception is thrown.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">throw if <paramref
name="repositoryName"/> is null</exception>
<exception cref="T:log4net.Core.LogException">throw if the <paramref
name="repositoryName"/> does not exist</exception>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(
System.Reflection.Assembly,System.Type)">
<summary>
Create a new repository for the assembly specified
</summary>
<param name="assembly">not used</param>
<param name="repositoryType">the type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/></param>
<returns>the repository created</returns>
<remarks>
<para>
The <paramref name="assembly"/> argument is not used. This selector
does not create a
separate repository for each assembly.
</para>
<para>
If the <paramref name="repositoryType"/> is <c>null</c> then the
default repository type specified to the constructor is used.
</para>
<para>
As a named repository is not specified the default repository is
returned. The default repository is named <c>log4net-default-reposit
ory</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.CreateRepository(
System.String,System.Type)">
<summary>
Create a new repository for the repository specified
</summary>
<param name="repositoryName">the repository to associate with the <s
ee cref="T:log4net.Repository.ILoggerRepository"/></param>
<param name="repositoryType">the type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
If this param is null then the default repository type is used.</par
am>
<returns>the repository created</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(string)"/>
with the
same repository specified will return the same repository instance.
</para>
<para>
If the named repository already exists an exception will be thrown.
</para>
<para>
If <paramref name="repositoryType"/> is <c>null</c> then the default

repository type specified to the constructor is used.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">throw if <paramref
name="repositoryName"/> is null</exception>
<exception cref="T:log4net.Core.LogException">throw if the <paramref
name="repositoryName"/> already exists</exception>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.ExistsRepository(
System.String)">
<summary>
Test if a named repository exists
</summary>
<param name="repositoryName">the named repository to check</param>
<returns><c>true</c> if the repository exists</returns>
<remarks>
<para>
Test if a named repository exists. Use <see cref="M:CreateRepository
(string, Type)"/>
to create a new repository and <see cref="M:GetRepository(string)"/>
to retrieve
a repository.
</para>
</remarks>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.GetAllRepositorie
s">
<summary>
Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/>
objects
</summary>
<returns>an array of all known <see cref="T:log4net.Repository.ILogg
erRepository"/> objects</returns>
<remarks>
<para>
Gets an array of all of the repositories created by this selector.
</para>
</remarks>
</member>
<member name="F:log4net.Core.CompactRepositorySelector.declaringType">
<summary>
The fully qualified type of the CompactRepositorySelector class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Core.CompactRepositorySelector.OnLoggerRepositor
yCreatedEvent(log4net.Repository.ILoggerRepository)">
<summary>
Notify the registered listeners that the repository has been created
</summary>
<param name="repository">The repository that has been created</param
>
<remarks>
<para>
Raises the <event cref="E:log4net.Core.CompactRepositorySelector.Log
gerRepositoryCreatedEvent">LoggerRepositoryCreatedEvent</event>
event.
</para>
</remarks>
</member>
<member name="E:log4net.Core.CompactRepositorySelector.LoggerRepositoryC
reatedEvent">
<summary>
Event to notify that a logger repository has been created.
</summary>
<value>
Event to notify that a logger repository has been created.
</value>
<remarks>
<para>
Event raised when a new repository is created.
The event source will be this selector. The event args will
be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/>
which
holds the newly created <see cref="T:log4net.Repository.ILoggerRepos
itory"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Core.DefaultRepositorySelector">
<summary>
The default implementation of the <see cref="T:log4net.Core.IReposit
orySelector"/> interface.
</summary>
<remarks>
<para>
Uses attributes defined on the calling assembly to determine how to
configure the hierarchy for the repository.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.#ctor(System.Type
)">
<summary>
Creates a new repository selector.
</summary>
<param name="defaultRepositoryType">The type of the repositories to
create, must implement <see cref="T:log4net.Repository.ILoggerRepository"/></par
am>
<remarks>
<para>
Create an new repository selector.
The default type for repositories must be specified,
an appropriate value would be <see cref="T:log4net.Repository.Hierar
chy.Hierarchy"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="def
aultRepositoryType"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref nam
e="defaultRepositoryType"/> does not implement <see cref="T:log4net.Repository.I
LoggerRepository"/>.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(Sys
tem.Reflection.Assembly)">
<summary>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e specified assembly.
</summary>
<param name="repositoryAssembly">The assembly use to lookup the <see
cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<remarks>
<para>
The type of the <see cref="T:log4net.Repository.ILoggerRepository"/>
created and the repository
to create can be overridden by specifying the <see cref="T:log4net.C
onfig.RepositoryAttribute"/>
attribute on the <paramref name="repositoryAssembly"/>.
</para>
<para>
The default values are to use the <see cref="T:log4net.Repository.Hi
erarchy.Hierarchy"/>
implementation of the <see cref="T:log4net.Repository.ILoggerReposit
ory"/> interface and to use the
<see cref="P:System.Reflection.AssemblyName.Name"/> as the name of t
he repository.
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be automatically configured using
any <see cref="T:log4net.Config.ConfiguratorAttribute"/> attributes
defined on
the <paramref name="repositoryAssembly"/>.
</para>
</remarks>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> fo
r the assembly</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="rep
ositoryAssembly"/> is <see langword="null"/>.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.GetRepository(Sys
tem.String)">
<summary>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e specified repository.
</summary>
<param name="repositoryName">The repository to use to lookup the <se
e cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> fo
r the specified repository.</returns>
<remarks>
<para>
Returns the named repository. If <paramref name="repositoryName"/> i
s <c>null</c>
a <see cref="T:System.ArgumentNullException"/> is thrown. If the rep
ository
does not exist a <see cref="T:log4net.Core.LogException"/> is thrown
.
</para>
<para>
Use <see cref="M:CreateRepository(string, Type)"/> to create a repos
itory.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="rep
ositoryName"/> is <see langword="null"/>.</exception>
<exception cref="T:log4net.Core.LogException"><paramref name="reposi
toryName"/> does not exist.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(
System.Reflection.Assembly,System.Type)">
<summary>
Create a new repository for the assembly specified
</summary>
<param name="repositoryAssembly">the assembly to use to create the r
epository to associate with the <see cref="T:log4net.Repository.ILoggerRepositor
y"/>.</param>
<param name="repositoryType">The type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<returns>The repository created.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
<para>
The type of the <see cref="T:log4net.Repository.ILoggerRepository"/>
created and
the repository to create can be overridden by specifying the
<see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
<paramref name="repositoryAssembly"/>. The default values are to us
e the
<paramref name="repositoryType"/> implementation of the
<see cref="T:log4net.Repository.ILoggerRepository"/> interface and t
o use the
<see cref="P:System.Reflection.AssemblyName.Name"/> as the name of t
he repository.
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be automatically
configured using any <see cref="T:log4net.Config.ConfiguratorAttribu
te"/>
attributes defined on the <paramref name="repositoryAssembly"/>.
</para>
<para>
If a repository for the <paramref name="repositoryAssembly"/> alread
y exists
that repository will be returned. An error will not be raised and th
at
repository may be of a different type to that specified in <paramref
name="repositoryType"/>.
Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribut
e on the
assembly may be used to override the repository type specified in
<paramref name="repositoryType"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="rep
ositoryAssembly"/> is <see langword="null"/>.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(
System.Reflection.Assembly,System.Type,System.String,System.Boolean)">
<summary>
Creates a new repository for the assembly specified.
</summary>
<param name="repositoryAssembly">the assembly to use to create the r
epository to associate with the <see cref="T:log4net.Repository.ILoggerRepositor
y"/>.</param>
<param name="repositoryType">The type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<param name="repositoryName">The name to assign to the created repos
itory</param>
<param name="readAssemblyAttributes">Set to <c>true</c> to read and
apply the assembly attributes</param>
<returns>The repository created.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
<para>
The type of the <see cref="T:log4net.Repository.ILoggerRepository"/>
created and
the repository to create can be overridden by specifying the
<see cref="T:log4net.Config.RepositoryAttribute"/> attribute on the
<paramref name="repositoryAssembly"/>. The default values are to us
e the
<paramref name="repositoryType"/> implementation of the
<see cref="T:log4net.Repository.ILoggerRepository"/> interface and t
o use the
<see cref="P:System.Reflection.AssemblyName.Name"/> as the name of t
he repository.
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be automatically
configured using any <see cref="T:log4net.Config.ConfiguratorAttribu
te"/>
attributes defined on the <paramref name="repositoryAssembly"/>.
</para>
<para>
If a repository for the <paramref name="repositoryAssembly"/> alread
y exists
that repository will be returned. An error will not be raised and th
at
repository may be of a different type to that specified in <paramref
name="repositoryType"/>.
Also the <see cref="T:log4net.Config.RepositoryAttribute"/> attribut
e on the
assembly may be used to override the repository type specified in
<paramref name="repositoryType"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="rep
ositoryAssembly"/> is <see langword="null"/>.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.CreateRepository(
System.String,System.Type)">
<summary>
Creates a new repository for the specified repository.
</summary>
<param name="repositoryName">The repository to associate with the <s
ee cref="T:log4net.Repository.ILoggerRepository"/>.</param>
<param name="repositoryType">The type of repository to create, must
implement <see cref="T:log4net.Repository.ILoggerRepository"/>.
If this param is <see langword="null"/> then the default repository
type is used.</param>
<returns>The new repository.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(string)"/>
with the
same repository specified will return the same repository instance.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="rep
ositoryName"/> is <see langword="null"/>.</exception>
<exception cref="T:log4net.Core.LogException"><paramref name="reposi
toryName"/> already exists.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.ExistsRepository(
System.String)">
<summary>
Test if a named repository exists
</summary>
<param name="repositoryName">the named repository to check</param>
<returns><c>true</c> if the repository exists</returns>
<remarks>
<para>
Test if a named repository exists. Use <see cref="M:CreateRepository
(string, Type)"/>
to create a new repository and <see cref="M:GetRepository(string)"/>
to retrieve
a repository.
</para>
</remarks>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.GetAllRepositorie
s">
<summary>
Gets a list of <see cref="T:log4net.Repository.ILoggerRepository"/>
objects
</summary>
<returns>an array of all known <see cref="T:log4net.Repository.ILogg
erRepository"/> objects</returns>
<remarks>
<para>
Gets an array of all of the repositories created by this selector.
</para>
</remarks>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.AliasRepository(S
ystem.String,log4net.Repository.ILoggerRepository)">
<summary>
Aliases a repository to an existing repository.
</summary>
<param name="repositoryAlias">The repository to alias.</param>
<param name="repositoryTarget">The repository that the repository is
aliased to.</param>
<remarks>
<para>
The repository specified will be aliased to the repository when crea
ted.
The repository must not already exist.
</para>
<para>
When the repository is created it must utilize the same repository t
ype as
the repository it is aliased to, otherwise the aliasing will fail.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">
<para><paramref name="repositoryAlias"/> is <see langword="null"/>.<
/para>
<para>-or-</para>
<para><paramref name="repositoryTarget"/> is <see langword="null"/>.
</para>
</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.OnLoggerRepositor
yCreatedEvent(log4net.Repository.ILoggerRepository)">
<summary>
Notifies the registered listeners that the repository has been creat
ed.
</summary>
<param name="repository">The repository that has been created.</para
m>
<remarks>
<para>
Raises the <see cref="E:log4net.Core.DefaultRepositorySelector.Logge
rRepositoryCreatedEvent"/> event.
</para>
</remarks>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.GetInfoForAssembl
y(System.Reflection.Assembly,System.String@,System.Type@)">
<summary>
Gets the repository name and repository type for the specified assem
bly.
</summary>
<param name="assembly">The assembly that has a <see cref="T:log4net.
Config.RepositoryAttribute"/>.</param>
<param name="repositoryName">in/out param to hold the repository nam
e to use for the assembly, caller should set this to the default value before ca
lling.</param>
<param name="repositoryType">in/out param to hold the type of the re
pository to create for the assembly, caller should set this to the default value
before calling.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="ass
embly"/> is <see langword="null"/>.</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.ConfigureReposito
ry(System.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Configures the repository using information from the assembly.
</summary>
<param name="assembly">The assembly containing <see cref="T:log4net.
Config.ConfiguratorAttribute"/>
attributes which define the configuration for the repository.</param
>
<param name="repository">The repository to configure.</param>
<exception cref="T:System.ArgumentNullException">
<para><paramref name="assembly"/> is <see langword="null"/>.</para>
<para>-or-</para>
<para><paramref name="repository"/> is <see langword="null"/>.</para
>
</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.LoadPlugins(Syste
m.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Loads the attribute defined plugins on the assembly.
</summary>
<param name="assembly">The assembly that contains the attributes.</p
aram>
<param name="repository">The repository to add the plugins to.</para
m>
<exception cref="T:System.ArgumentNullException">
<para><paramref name="assembly"/> is <see langword="null"/>.</para>
<para>-or-</para>
<para><paramref name="repository"/> is <see langword="null"/>.</para
>
</exception>
</member>
<member name="M:log4net.Core.DefaultRepositorySelector.LoadAliases(Syste
m.Reflection.Assembly,log4net.Repository.ILoggerRepository)">
<summary>
Loads the attribute defined aliases on the assembly.
</summary>
<param name="assembly">The assembly that contains the attributes.</p
aram>
<param name="repository">The repository to alias to.</param>
<exception cref="T:System.ArgumentNullException">
<para><paramref name="assembly"/> is <see langword="null"/>.</para>
<para>-or-</para>
<para><paramref name="repository"/> is <see langword="null"/>.</para
>
</exception>
</member>
<member name="F:log4net.Core.DefaultRepositorySelector.declaringType">
<summary>
The fully qualified type of the DefaultRepositorySelector class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="E:log4net.Core.DefaultRepositorySelector.LoggerRepositoryC
reatedEvent">
<summary>
Event to notify that a logger repository has been created.
</summary>
<value>
Event to notify that a logger repository has been created.
</value>
<remarks>
<para>
Event raised when a new repository is created.
The event source will be this selector. The event args will
be a <see cref="T:log4net.Core.LoggerRepositoryCreationEventArgs"/>
which
holds the newly created <see cref="T:log4net.Repository.ILoggerRepos
itory"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Core.ErrorCode">
<summary>
Defined error codes that can be passed to the <see cref="M:IErrorHan
dler.Error(string, Exception, ErrorCode)"/> method.
</summary>
<remarks>
<para>
Values passed to the <see cref="M:IErrorHandler.Error(string, Except
ion, ErrorCode)"/> method.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.ErrorCode.GenericFailure">
<summary>
A general error
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.WriteFailure">
<summary>
Error while writing output
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.FlushFailure">
<summary>
Failed to flush file
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.CloseFailure">
<summary>
Failed to close file
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.FileOpenFailure">
<summary>
Unable to open output file
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.MissingLayout">
<summary>
No layout specified
</summary>
</member>
<member name="F:log4net.Core.ErrorCode.AddressParseFailure">
<summary>
Failed to parse address
</summary>
</member>
<member name="T:log4net.Core.ExceptionEvaluator">
<summary>
An evaluator that triggers on an Exception type
</summary>
<remarks>
<para>
This evaluator will trigger if the type of the Exception
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to a Type in <see cref="P:log4net.Core.ExceptionEvaluator.E
xceptionType"/>. ///
</para>
</remarks>
<author>Drew Schaeffer</author>
</member>
<member name="T:log4net.Core.ITriggeringEventEvaluator">
<summary>
Test if an <see cref="T:log4net.Core.LoggingEvent"/> triggers an act
ion
</summary>
<remarks>
<para>
Implementations of this interface allow certain appenders to decide
when to perform an appender specific action.
</para>
<para>
The action or behavior triggered is defined by the implementation.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Core.ITriggeringEventEvaluator.IsTriggeringEvent
(log4net.Core.LoggingEvent)">
<summary>
Test if this event triggers the action
</summary>
<param name="loggingEvent">The event to check</param>
<returns><c>true</c> if this event triggers the action, otherwise <c
>false</c></returns>
<remarks>
<para>
Return <c>true</c> if this event triggers the action
</para>
</remarks>
</member>
<member name="F:log4net.Core.ExceptionEvaluator.m_type">
<summary>
The type that causes the trigger to fire.
</summary>
</member>
<member name="F:log4net.Core.ExceptionEvaluator.m_triggerOnSubclass">
<summary>
Causes subclasses of <see cref="P:log4net.Core.ExceptionEvaluator.Ex
ceptionType"/> to cause the trigger to fire.
</summary>
</member>
<member name="M:log4net.Core.ExceptionEvaluator.#ctor">
<summary>
Default ctor to allow dynamic creation through a configurator.
</summary>
</member>
<member name="M:log4net.Core.ExceptionEvaluator.#ctor(System.Type,System
.Boolean)">
<summary>
Constructs an evaluator and initializes to trigger on <paramref name
="exType"/>
</summary>
<param name="exType">the type that triggers this evaluator.</param>
<param name="triggerOnSubClass">If true, this evaluator will trigger
on subclasses of <see cref="P:log4net.Core.ExceptionEvaluator.ExceptionType"/>.
</param>
</member>
<member name="M:log4net.Core.ExceptionEvaluator.IsTriggeringEvent(log4ne
t.Core.LoggingEvent)">
<summary>
Is this <paramref name="loggingEvent"/> the triggering event?
</summary>
<param name="loggingEvent">The event to check</param>
<returns>This method returns <c>true</c>, if the logging event Excep
tion
Type is <see cref="P:log4net.Core.ExceptionEvaluator.ExceptionType"/
>.
Otherwise it returns <c>false</c></returns>
<remarks>
<para>
This evaluator will trigger if the Exception Type of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is <see cref="P:log4net.Core.ExceptionEvaluator.ExceptionType"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Core.ExceptionEvaluator.ExceptionType">
<summary>
The type that triggers this evaluator.
</summary>
</member>
<member name="P:log4net.Core.ExceptionEvaluator.TriggerOnSubclass">
<summary>
If true, this evaluator will trigger on subclasses of <see cref="P:l
og4net.Core.ExceptionEvaluator.ExceptionType"/>.
</summary>
</member>
<member name="T:log4net.Core.IErrorHandler">
<summary>
Appenders may delegate their error handling to an <see cref="T:log4n
et.Core.IErrorHandler"/>.
</summary>
<remarks>
<para>
Error handling is a particularly tedious to get right because by
definition errors are hard to predict and to reproduce.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Ex
ception,log4net.Core.ErrorCode)">
<summary>
Handles the error and information about the error condition is passe
d as
a parameter.
</summary>
<param name="message">The message associated with the error.</param>
<param name="e">The <see cref="T:System.Exception"/> that was thrown
when the error occurred.</param>
<param name="errorCode">The error code associated with the error.</p
aram>
<remarks>
<para>
Handles the error and information about the error condition is passe
d as
a parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IErrorHandler.Error(System.String,System.Ex
ception)">
<summary>
Prints the error message passed as a parameter.
</summary>
<param name="message">The message associated with the error.</param>
<param name="e">The <see cref="T:System.Exception"/> that was thrown
when the error occurred.</param>
<remarks>
<para>
See <see cref="M:Error(string,Exception,ErrorCode)"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.IErrorHandler.Error(System.String)">
<summary>
Prints the error message passed as a parameter.
</summary>
<param name="message">The message associated with the error.</param>
<remarks>
<para>
See <see cref="M:Error(string,Exception,ErrorCode)"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Core.IFixingRequired">
<summary>
Interface for objects that require fixing.
</summary>
<remarks>
<para>
Interface that indicates that the object requires fixing before it
can be taken outside the context of the appender's
<see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.Loggin
gEvent)"/> method.
</para>
<para>
When objects that implement this interface are stored
in the context properties maps <see cref="T:log4net.GlobalContext"/>
<see cref="P:log4net.GlobalContext.Properties"/> and <see cref="T:lo
g4net.ThreadContext"/>
<see cref="P:log4net.ThreadContext.Properties"/> are fixed
(see <see cref="P:log4net.Core.LoggingEvent.Fix"/>) the <see cref="M
:log4net.Core.IFixingRequired.GetFixedObject"/>
method will be called.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Core.IFixingRequired.GetFixedObject">
<summary>
Get a portable version of this object
</summary>
<returns>the portable instance of this object</returns>
<remarks>
<para>
Get a portable instance object that represents the current
state of this object. The portable object can be stored
and logged from any thread with identical results.
</para>
</remarks>
</member>
<member name="T:log4net.Core.ILogger">
<summary>
Interface that all loggers implement
</summary>
<remarks>
<para>
This interface supports logging events and testing if a level
is enabled for logging.
</para>
<para>
These methods will not throw exceptions. Note to implementor, ensure
that the implementation of these methods cannot allow an exception
to be thrown to the caller.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.ILogger.Log(System.Type,log4net.Core.Level,
System.Object,System.Exception)">
<summary>
This generic form is intended to be used by wrappers.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="level">The level of the message to be logged.</param>
<param name="message">The message object to log.</param>
<param name="exception">the exception to log, including its stack tr
ace. Pass <c>null</c> to not log an exception.</param>
<remarks>
<para>
Generates a logging event for the specified <paramref name="level"/>
using
the <paramref name="message"/> and <paramref name="exception"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.ILogger.Log(log4net.Core.LoggingEvent)">
<summary>
This is the most generic printing method that is intended to be used

by wrappers.
</summary>
<param name="logEvent">The event being logged.</param>
<remarks>
<para>
Logs the specified logging event through this logger.
</para>
</remarks>
</member>
<member name="M:log4net.Core.ILogger.IsEnabledFor(log4net.Core.Level)">
<summary>
Checks if this logger is enabled for a given <see cref="T:log4net.Co
re.Level"/> passed as parameter.
</summary>
<param name="level">The level to check.</param>
<returns>
<c>true</c> if this logger is enabled for <c>level</c>, otherwise <c
>false</c>.
</returns>
<remarks>
<para>
Test if this logger is going to log events of the specified <paramre
f name="level"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Core.ILogger.Name">
<summary>
Gets the name of the logger.
</summary>
<value>
The name of the logger.
</value>
<remarks>
<para>
The name of this logger
</para>
</remarks>
</member>
<member name="P:log4net.Core.ILogger.Repository">
<summary>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where
this
<c>Logger</c> instance is attached to.
</summary>
<value>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that this l
ogger belongs to.
</value>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where
this
<c>Logger</c> instance is attached to.
</para>
</remarks>
</member>
<member name="T:log4net.Core.ILoggerWrapper">
<summary>
Base interface for all wrappers
</summary>
<remarks>
<para>
Base interface for all wrappers.
</para>
<para>
All wrappers must implement this interface.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="P:log4net.Core.ILoggerWrapper.Logger">
<summary>
Get the implementation behind this wrapper object.
</summary>
<value>
The <see cref="T:log4net.Core.ILogger"/> object that in implementing
this object.
</value>
<remarks>
<para>
The <see cref="T:log4net.Core.ILogger"/> object that in implementing
this
object. The <c>Logger</c> object may not
be the same object as this object because of logger decorators.
This gets the actual underlying objects that is used to process
the log events.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LoggerRepositoryCreationEventHandler">
<summary>
Delegate used to handle logger repository creation event notificatio
ns
</summary>
<param name="sender">The <see cref="T:log4net.Core.IRepositorySelect
or"/> which created the repository.</param>
<param name="e">The <see cref="T:log4net.Core.LoggerRepositoryCreati
onEventArgs"/> event args
that holds the <see cref="T:log4net.Repository.ILoggerRepository"/>
instance that has been created.</param>
<remarks>
<para>
Delegate used to handle logger repository creation event notificatio
ns.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LoggerRepositoryCreationEventArgs">
<summary>
Provides data for the <see cref="E:log4net.Core.IRepositorySelector.
LoggerRepositoryCreatedEvent"/> event.
</summary>
<remarks>
<para>
A <see cref="E:log4net.Core.IRepositorySelector.LoggerRepositoryCrea
tedEvent"/>
event is raised every time a <see cref="T:log4net.Repository.ILogger
Repository"/> is created.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggerRepositoryCreationEventArgs.m_reposit
ory">
<summary>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created
</summary>
</member>
<member name="M:log4net.Core.LoggerRepositoryCreationEventArgs.#ctor(log
4net.Repository.ILoggerRepository)">
<summary>
Construct instance using <see cref="T:log4net.Repository.ILoggerRepo
sitory"/> specified
</summary>
<param name="repository">the <see cref="T:log4net.Repository.ILogger
Repository"/> that has been created</param>
<remarks>
<para>
Construct instance using <see cref="T:log4net.Repository.ILoggerRepo
sitory"/> specified
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggerRepositoryCreationEventArgs.LoggerRep
ository">
<summary>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that has be
en created
</summary>
<value>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that has be
en created
</value>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that has be
en created
</para>
</remarks>
</member>
<member name="T:log4net.Core.Level">
<summary>
Defines the default set of levels recognized by the system.
</summary>
<remarks>
<para>
Each <see cref="T:log4net.Core.LoggingEvent"/> has an associated <se
e cref="T:log4net.Core.Level"/>.
</para>
<para>
Levels have a numeric <see cref="P:log4net.Core.Level.Value"/> that
defines the relative
ordering between levels. Two Levels with the same <see cref="P:log4n
et.Core.Level.Value"/>
are deemed to be equivalent.
</para>
<para>
The levels that are recognized by log4net are set for each <see cref
="T:log4net.Repository.ILoggerRepository"/>
and each repository can have different levels defined. The levels ar
e stored
in the <see cref="P:log4net.Repository.ILoggerRepository.LevelMap"/>
on the repository. Levels are
looked up by name from the <see cref="P:log4net.Repository.ILoggerRe
pository.LevelMap"/>.
</para>
<para>
When logging at level INFO the actual level used is not <see cref="F
:log4net.Core.Level.Info"/> but
the value of <c>LoggerRepository.LevelMap["INFO"]</c>. The default v
alue for this is
<see cref="F:log4net.Core.Level.Info"/>, but this can be changed by
reconfiguring the level map.
</para>
<para>
Each level has a <see cref="P:log4net.Core.Level.DisplayName"/> in a
ddition to its <see cref="P:log4net.Core.Level.Name"/>. The
<see cref="P:log4net.Core.Level.DisplayName"/> is the string that is
written into the output log. By default
the display name is the same as the level name, but this can be used
to alias levels
or to localize the log output.
</para>
<para>
Some of the predefined levels recognized by the system are:
</para>
<list type="bullet">
<item>
<description><see cref="F:log4net.Core.Level.Off"/>.</de
scription>
</item>
<item>
<description><see cref="F:log4net.Core.Level.Fatal"/>.</
description>
</item>
<item>
<description><see cref="F:log4net.Core.Level.Error"/>.</
description>
</item>
<item>
<description><see cref="F:log4net.Core.Level.Warn"/>.</d
escription>
</item>
<item>
<description><see cref="F:log4net.Core.Level.Info"/>.</d
escription>
</item>
<item>
<description><see cref="F:log4net.Core.Level.Debug"/>.</
description>
</item>
<item>
<description><see cref="F:log4net.Core.Level.All"/>.</de
scription>
</item>
</list>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.Level.#ctor(System.Int32,System.String,Syst
em.String)">
<summary>
Constructor
</summary>
<param name="level">Integer value for this level, higher values repr
esent more severe levels.</param>
<param name="levelName">The string name of this level.</param>
<param name="displayName">The display name for this level. This may
be localized or otherwise different from the name</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.Level"/>
class with
the specified level name and value.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.#ctor(System.Int32,System.String)">
<summary>
Constructor
</summary>
<param name="level">Integer value for this level, higher values repr
esent more severe levels.</param>
<param name="levelName">The string name of this level.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.Level"/>
class with
the specified level name and value.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.ToString">
<summary>
Returns the <see cref="T:System.String"/> representation of the curr
ent
<see cref="T:log4net.Core.Level"/>.
</summary>
<returns>
A <see cref="T:System.String"/> representation of the current <see c
ref="T:log4net.Core.Level"/>.
</returns>
<remarks>
<para>
Returns the level <see cref="P:log4net.Core.Level.Name"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.Equals(System.Object)">
<summary>
Compares levels.
</summary>
<param name="o">The object to compare against.</param>
<returns><c>true</c> if the objects are equal.</returns>
<remarks>
<para>
Compares the levels of <see cref="T:log4net.Core.Level"/> instances,
and
defers to base class if the target object is not a <see cref="T:log4
net.Core.Level"/>
instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.GetHashCode">
<summary>
Returns a hash code
</summary>
<returns>A hash code for the current <see cref="T:log4net.Core.Level
"/>.</returns>
<remarks>
<para>
Returns a hash code suitable for use in hashing algorithms and data
structures like a hash table.
</para>
<para>
Returns the hash code of the level <see cref="P:log4net.Core.Level.V
alue"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an
indication of their relative values.
</summary>
<param name="r">A <see cref="T:log4net.Core.Level"/> instance or <se
e langword="null"/> to compare with this instance.</param>
<returns>
A 32-bit signed integer that indicates the relative order of the
values compared. The return value has these meanings:
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>Less than zero</term>
<description>This instance is less than <paramref name="
r"/>.</description>
</item>
<item>
<term>Zero</term>
<description>This instance is equal to <paramref name="r
"/>.</description>
</item>
<item>
<term>Greater than zero</term>
<description>
<para>This instance is greater than <paramref na
me="r"/>.</para>
<para>-or-</para>
<para><paramref name="r"/> is <see langword="nul
l"/>.</para>
</description>
</item>
</list>
</returns>
<remarks>
<para>
<paramref name="r"/> must be an instance of <see cref="T:log4net.Cor
e.Level"/>
or <see langword="null"/>; otherwise, an exception is thrown.
</para>
</remarks>
<exception cref="T:System.ArgumentException"><paramref name="r"/> is
not a <see cref="T:log4net.Core.Level"/>.</exception>
</member>
<member name="M:log4net.Core.Level.op_GreaterThan(log4net.Core.Level,log
4net.Core.Level)">
<summary>
Returns a value indicating whether a specified <see cref="T:log4net.
Core.Level"/>
is greater than another specified <see cref="T:log4net.Core.Level"/>
.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/></param>
<param name="r">A <see cref="T:log4net.Core.Level"/></param>
<returns>
<c>true</c> if <paramref name="l"/> is greater than
<paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.op_LessThan(log4net.Core.Level,log4ne
t.Core.Level)">
<summary>
Returns a value indicating whether a specified <see cref="T:log4net.
Core.Level"/>
is less than another specified <see cref="T:log4net.Core.Level"/>.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/></param>
<param name="r">A <see cref="T:log4net.Core.Level"/></param>
<returns>
<c>true</c> if <paramref name="l"/> is less than
<paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.op_GreaterThanOrEqual(log4net.Core.Le
vel,log4net.Core.Level)">
<summary>
Returns a value indicating whether a specified <see cref="T:log4net.
Core.Level"/>
is greater than or equal to another specified <see cref="T:log4net.C
ore.Level"/>.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/></param>
<param name="r">A <see cref="T:log4net.Core.Level"/></param>
<returns>
<c>true</c> if <paramref name="l"/> is greater than or equal to
<paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.op_LessThanOrEqual(log4net.Core.Level
,log4net.Core.Level)">
<summary>
Returns a value indicating whether a specified <see cref="T:log4net.
Core.Level"/>
is less than or equal to another specified <see cref="T:log4net.Core
.Level"/>.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/></param>
<param name="r">A <see cref="T:log4net.Core.Level"/></param>
<returns>
<c>true</c> if <paramref name="l"/> is less than or equal to
<paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.op_Equality(log4net.Core.Level,log4ne
t.Core.Level)">
<summary>
Returns a value indicating whether two specified <see cref="T:log4ne
t.Core.Level"/>
objects have the same value.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/> or <see langwor
d="null"/>.</param>
<param name="r">A <see cref="T:log4net.Core.Level"/> or <see langwor
d="null"/>.</param>
<returns>
<c>true</c> if the value of <paramref name="l"/> is the same as the
value of <paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.op_Inequality(log4net.Core.Level,log4
net.Core.Level)">
<summary>
Returns a value indicating whether two specified <see cref="T:log4ne
t.Core.Level"/>
objects have different values.
</summary>
<param name="l">A <see cref="T:log4net.Core.Level"/> or <see langwor
d="null"/>.</param>
<param name="r">A <see cref="T:log4net.Core.Level"/> or <see langwor
d="null"/>.</param>
<returns>
<c>true</c> if the value of <paramref name="l"/> is different from
the value of <paramref name="r"/>; otherwise, <c>false</c>.
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="M:log4net.Core.Level.Compare(log4net.Core.Level,log4net.Co
re.Level)">
<summary>
Compares two specified <see cref="T:log4net.Core.Level"/> instances.
</summary>
<param name="l">The first <see cref="T:log4net.Core.Level"/> to comp
are.</param>
<param name="r">The second <see cref="T:log4net.Core.Level"/> to com
pare.</param>
<returns>
A 32-bit signed integer that indicates the relative order of the
two values compared. The return value has these meanings:
<list type="table">
<listheader>
<term>Value</term>
<description>Meaning</description>
</listheader>
<item>
<term>Less than zero</term>
<description><paramref name="l"/> is less than <paramref
name="r"/>.</description>
</item>
<item>
<term>Zero</term>
<description><paramref name="l"/> is equal to <paramref
name="r"/>.</description>
</item>
<item>
<term>Greater than zero</term>
<description><paramref name="l"/> is greater than <param
ref name="r"/>.</description>
</item>
</list>
</returns>
<remarks>
<para>
Compares two levels.
</para>
</remarks>
</member>
<member name="F:log4net.Core.Level.Off">
<summary>
The <see cref="F:log4net.Core.Level.Off"/> level designates a higher
level than all the rest.
</summary>
</member>
<member name="F:log4net.Core.Level.Log4Net_Debug">
<summary>
The <see cref="F:log4net.Core.Level.Emergency"/> level designates ve
ry severe error events.
System unusable, emergencies.
</summary>
</member>
<member name="F:log4net.Core.Level.Emergency">
<summary>
The <see cref="F:log4net.Core.Level.Emergency"/> level designates ve
ry severe error events.
System unusable, emergencies.
</summary>
</member>
<member name="F:log4net.Core.Level.Fatal">
<summary>
The <see cref="F:log4net.Core.Level.Fatal"/> level designates very s
evere error events
that will presumably lead the application to abort.
</summary>
</member>
<member name="F:log4net.Core.Level.Alert">
<summary>
The <see cref="F:log4net.Core.Level.Alert"/> level designates very s
evere error events.
Take immediate action, alerts.
</summary>
</member>
<member name="F:log4net.Core.Level.Critical">
<summary>
The <see cref="F:log4net.Core.Level.Critical"/> level designates ver
y severe error events.
Critical condition, critical.
</summary>
</member>
<member name="F:log4net.Core.Level.Severe">
<summary>
The <see cref="F:log4net.Core.Level.Severe"/> level designates very
severe error events.
</summary>
</member>
<member name="F:log4net.Core.Level.Error">
<summary>
The <see cref="F:log4net.Core.Level.Error"/> level designates error
events that might
still allow the application to continue running.
</summary>
</member>
<member name="F:log4net.Core.Level.Warn">
<summary>
The <see cref="F:log4net.Core.Level.Warn"/> level designates potenti
ally harmful
situations.
</summary>
</member>
<member name="F:log4net.Core.Level.Notice">
<summary>
The <see cref="F:log4net.Core.Level.Notice"/> level designates infor
mational messages
that highlight the progress of the application at the highest level.
</summary>
</member>
<member name="F:log4net.Core.Level.Info">
<summary>
The <see cref="F:log4net.Core.Level.Info"/> level designates informa
tional messages that
highlight the progress of the application at coarse-grained level.
</summary>
</member>
<member name="F:log4net.Core.Level.Debug">
<summary>
The <see cref="F:log4net.Core.Level.Debug"/> level designates fine-g
rained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.Fine">
<summary>
The <see cref="F:log4net.Core.Level.Fine"/> level designates fine-gr
ained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.Trace">
<summary>
The <see cref="F:log4net.Core.Level.Trace"/> level designates fine-g
rained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.Finer">
<summary>
The <see cref="F:log4net.Core.Level.Finer"/> level designates fine-g
rained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.Verbose">
<summary>
The <see cref="F:log4net.Core.Level.Verbose"/> level designates fine
-grained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.Finest">
<summary>
The <see cref="F:log4net.Core.Level.Finest"/> level designates fine-
grained informational
events that are most useful to debug an application.
</summary>
</member>
<member name="F:log4net.Core.Level.All">
<summary>
The <see cref="F:log4net.Core.Level.All"/> level designates the lowe
st level possible.
</summary>
</member>
<member name="P:log4net.Core.Level.Name">
<summary>
Gets the name of this level.
</summary>
<value>
The name of this level.
</value>
<remarks>
<para>
Gets the name of this level.
</para>
</remarks>
</member>
<member name="P:log4net.Core.Level.Value">
<summary>
Gets the value of this level.
</summary>
<value>
The value of this level.
</value>
<remarks>
<para>
Gets the value of this level.
</para>
</remarks>
</member>
<member name="P:log4net.Core.Level.DisplayName">
<summary>
Gets the display name of this level.
</summary>
<value>
The display name of this level.
</value>
<remarks>
<para>
Gets the display name of this level.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LevelCollection">
<summary>
A strongly-typed collection of <see cref="T:log4net.Core.Level"/> ob
jects.
</summary>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Core.LevelCollection.ReadOnly(log4net.Core.Level
Collection)">
<summary>
Creates a read-only wrapper for a <c>LevelCollection</c> instance.
</summary>
<param name="list">list to create a readonly wrapper arround</param>
<returns>
A <c>LevelCollection</c> wrapper that is read-only.
</returns>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor">
<summary>
Initializes a new instance of the <c>LevelCollection</c> class
that is empty and has the default initial capacity.
</summary>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <c>LevelCollection</c> class
that has the specified initial capacity.
</summary>
<param name="capacity">
The number of elements that the new <c>LevelCollection</c> is initia
lly capable of storing.
</param>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCol
lection)">
<summary>
Initializes a new instance of the <c>LevelCollection</c> class
that contains elements copied from the specified <c>LevelCollection<
/c>.
</summary>
<param name="c">The <c>LevelCollection</c> whose elements are copied
to the new collection.</param>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.Level[])
">
<summary>
Initializes a new instance of the <c>LevelCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Core.Level"/> array.
</summary>
<param name="a">The <see cref="T:log4net.Core.Level"/> array whose e
lements are copied to the new list.</param>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor(System.Collections.IC
ollection)">
<summary>
Initializes a new instance of the <c>LevelCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Core.Level"/> collection.
</summary>
<param name="col">The <see cref="T:log4net.Core.Level"/> collection
whose elements are copied to the new list.</param>
</member>
<member name="M:log4net.Core.LevelCollection.#ctor(log4net.Core.LevelCol
lection.Tag)">
<summary>
Allow subclasses to avoid our default constructors
</summary>
<param name="tag"></param>
</member>
<member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[]
)">
<summary>
Copies the entire <c>LevelCollection</c> to a one-dimensional
<see cref="T:log4net.Core.Level"/> array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Core.Le
vel"/> array to copy to.</param>
</member>
<member name="M:log4net.Core.LevelCollection.CopyTo(log4net.Core.Level[]
,System.Int32)">
<summary>
Copies the entire <c>LevelCollection</c> to a one-dimensional
<see cref="T:log4net.Core.Level"/> array, starting at the specified
index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Core.Le
vel"/> array to copy to.</param>
<param name="start">The zero-based index in <paramref name="array"/>
at which copying begins.</param>
</member>
<member name="M:log4net.Core.LevelCollection.Add(log4net.Core.Level)">
<summary>
Adds a <see cref="T:log4net.Core.Level"/> to the end of the <c>Level
Collection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Core.Level"/> to be adde
d to the end of the <c>LevelCollection</c>.</param>
<returns>The index at which the value has been added.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.Clear">
<summary>
Removes all elements from the <c>LevelCollection</c>.
</summary>
</member>
<member name="M:log4net.Core.LevelCollection.Clone">
<summary>
Creates a shallow copy of the <see cref="T:log4net.Core.LevelCollect
ion"/>.
</summary>
<returns>A new <see cref="T:log4net.Core.LevelCollection"/> with a s
hallow copy of the collection data.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.Contains(log4net.Core.Level
)">
<summary>
Determines whether a given <see cref="T:log4net.Core.Level"/> is in
the <c>LevelCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Core.Level"/> to check f
or.</param>
<returns><c>true</c> if <paramref name="item"/> is found in the <c>L
evelCollection</c>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.IndexOf(log4net.Core.Level)
">
<summary>
Returns the zero-based index of the first occurrence of a <see cref=
"T:log4net.Core.Level"/>
in the <c>LevelCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Core.Level"/> to locate
in the <c>LevelCollection</c>.</param>
<returns>
The zero-based index of the first occurrence of <paramref name="item
"/>
in the entire <c>LevelCollection</c>, if found; otherwise, -1.
</returns>
</member>
<member name="M:log4net.Core.LevelCollection.Insert(System.Int32,log4net
.Core.Level)">
<summary>
Inserts an element into the <c>LevelCollection</c> at the specified
index.
</summary>
<param name="index">The zero-based index at which <paramref name="it
em"/> should be inserted.</param>
<param name="item">The <see cref="T:log4net.Core.Level"/> to insert.
</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Core.LevelCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.Remove(log4net.Core.Level)"
>
<summary>
Removes the first occurrence of a specific <see cref="T:log4net.Core
.Level"/> from the <c>LevelCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Core.Level"/> to remove
from the <c>LevelCollection</c>.</param>
<exception cref="T:System.ArgumentException">
The specified <see cref="T:log4net.Core.Level"/> was not found in th
e <c>LevelCollection</c>.
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.RemoveAt(System.Int32)">
<summary>
Removes the element at the specified index of the <c>LevelCollection
</c>.
</summary>
<param name="index">The zero-based index of the element to remove.</
param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Core.LevelCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.GetEnumerator">
<summary>
Returns an enumerator that can iterate through the <c>LevelCollectio
n</c>.
</summary>
<returns>An <see cref="T:log4net.Core.LevelCollection.Enumerator"/>
for the entire <c>LevelCollection</c>.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.Level
Collection)">
<summary>
Adds the elements of another <c>LevelCollection</c> to the current <
c>LevelCollection</c>.
</summary>
<param name="x">The <c>LevelCollection</c> whose elements should be
added to the end of the current <c>LevelCollection</c>.</param>
<returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/>
of the <c>LevelCollection</c>.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.AddRange(log4net.Core.Level
[])">
<summary>
Adds the elements of a <see cref="T:log4net.Core.Level"/> array to t
he current <c>LevelCollection</c>.
</summary>
<param name="x">The <see cref="T:log4net.Core.Level"/> array whose e
lements should be added to the end of the <c>LevelCollection</c>.</param>
<returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/>
of the <c>LevelCollection</c>.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.AddRange(System.Collections
.ICollection)">
<summary>
Adds the elements of a <see cref="T:log4net.Core.Level"/> collection
to the current <c>LevelCollection</c>.
</summary>
<param name="col">The <see cref="T:log4net.Core.Level"/> collection
whose elements should be added to the end of the <c>LevelCollection</c>.</param>
<returns>The new <see cref="P:log4net.Core.LevelCollection.Count"/>
of the <c>LevelCollection</c>.</returns>
</member>
<member name="M:log4net.Core.LevelCollection.TrimToSize">
<summary>
Sets the capacity to the actual number of elements.
</summary>
</member>
<member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32)
">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Core.LevelCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.ValidateIndex(System.Int32,
System.Boolean)">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Core.LevelCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Core.LevelCollection.Count">
<summary>
Gets the number of elements actually contained in the <c>LevelCollec
tion</c>.
</summary>
</member>
<member name="P:log4net.Core.LevelCollection.IsSynchronized">
<summary>
Gets a value indicating whether access to the collection is synchron
ized (thread-safe).
</summary>
<value>true if access to the ICollection is synchronized (thread-saf
e); otherwise, false.</value>
</member>
<member name="P:log4net.Core.LevelCollection.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the collect
ion.
</summary>
</member>
<member name="P:log4net.Core.LevelCollection.Item(System.Int32)">
<summary>
Gets or sets the <see cref="T:log4net.Core.Level"/> at the specified
index.
</summary>
<param name="index">The zero-based index of the element to get or se
t.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Core.LevelCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Core.LevelCollection.IsFixedSize">
<summary>
Gets a value indicating whether the collection has a fixed size.
</summary>
<value>true if the collection has a fixed size; otherwise, false. Th
e default is false</value>
</member>
<member name="P:log4net.Core.LevelCollection.IsReadOnly">
<summary>
Gets a value indicating whether the IList is read-only.
</summary>
<value>true if the collection is read-only; otherwise, false. The de
fault is false</value>
</member>
<member name="P:log4net.Core.LevelCollection.Capacity">
<summary>
Gets or sets the number of elements the <c>LevelCollection</c> can c
ontain.
</summary>
</member>
<member name="T:log4net.Core.LevelCollection.ILevelCollectionEnumerator"
>
<summary>
Supports type-safe iteration over a <see cref="T:log4net.Core.LevelC
ollection"/>.
</summary>
</member>
<member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.
MoveNext">
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.ILevelCollectionEnumerator.
Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Core.LevelCollection.ILevelCollectionEnumerator.
Current">
<summary>
Gets the current element in the collection.
</summary>
</member>
<member name="T:log4net.Core.LevelCollection.Tag">
<summary>
Type visible only to our subclasses
Used to access protected constructor
</summary>
</member>
<member name="F:log4net.Core.LevelCollection.Tag.Default">
<summary>
A value
</summary>
</member>
<member name="T:log4net.Core.LevelCollection.Enumerator">
<summary>
Supports simple iteration over a <see cref="T:log4net.Core.LevelColl
ection"/>.
</summary>
</member>
<member name="M:log4net.Core.LevelCollection.Enumerator.#ctor(log4net.Co
re.LevelCollection)">
<summary>
Initializes a new instance of the <c>Enumerator</c> class.
</summary>
<param name="tc"></param>
</member>
<member name="M:log4net.Core.LevelCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Core.LevelCollection.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Core.LevelCollection.Enumerator.Current">
<summary>
Gets the current element in the collection.
</summary>
</member>
<member name="T:log4net.Core.LevelEvaluator">
<summary>
An evaluator that triggers at a threshold level
</summary>
<remarks>
<para>
This evaluator will trigger if the level of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to or greater than the <see cref="P:log4net.Core.LevelEvalu
ator.Threshold"/>
level.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.LevelEvaluator.m_threshold">
<summary>
The threshold for triggering
</summary>
</member>
<member name="M:log4net.Core.LevelEvaluator.#ctor">
<summary>
Create a new evaluator using the <see cref="F:log4net.Core.Level.Off
"/> threshold.
</summary>
<remarks>
<para>
Create a new evaluator using the <see cref="F:log4net.Core.Level.Off
"/> threshold.
</para>
<para>
This evaluator will trigger if the level of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to or greater than the <see cref="P:log4net.Core.LevelEvalu
ator.Threshold"/>
level.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelEvaluator.#ctor(log4net.Core.Level)">
<summary>
Create a new evaluator using the specified <see cref="T:log4net.Core
.Level"/> threshold.
</summary>
<param name="threshold">the threshold to trigger at</param>
<remarks>
<para>
Create a new evaluator using the specified <see cref="T:log4net.Core
.Level"/> threshold.
</para>
<para>
This evaluator will trigger if the level of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to or greater than the <see cref="P:log4net.Core.LevelEvalu
ator.Threshold"/>
level.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelEvaluator.IsTriggeringEvent(log4net.Co
re.LoggingEvent)">
<summary>
Is this <paramref name="loggingEvent"/> the triggering event?
</summary>
<param name="loggingEvent">The event to check</param>
<returns>This method returns <c>true</c>, if the event level
is equal or higher than the <see cref="P:log4net.Core.LevelEvaluator
.Threshold"/>.
Otherwise it returns <c>false</c></returns>
<remarks>
<para>
This evaluator will trigger if the level of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to or greater than the <see cref="P:log4net.Core.LevelEvalu
ator.Threshold"/>
level.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LevelEvaluator.Threshold">
<summary>
the threshold to trigger at
</summary>
<value>
The <see cref="T:log4net.Core.Level"/> that will cause this evaluato
r to trigger
</value>
<remarks>
<para>
This evaluator will trigger if the level of the event
passed to <see cref="M:IsTriggeringEvent(LoggingEvent)"/>
is equal to or greater than the <see cref="P:log4net.Core.LevelEvalu
ator.Threshold"/>
level.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LevelMap">
<summary>
Mapping between string name and Level object
</summary>
<remarks>
<para>
Mapping between string name and <see cref="T:log4net.Core.Level"/> o
bject.
This mapping is held separately for each <see cref="T:log4net.Reposi
tory.ILoggerRepository"/>.
The level name is case insensitive.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.LevelMap.m_mapName2Level">
<summary>
Mapping from level name to Level object. The
level name is case insensitive
</summary>
</member>
<member name="M:log4net.Core.LevelMap.#ctor">
<summary>
Construct the level map
</summary>
<remarks>
<para>
Construct the level map.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelMap.Clear">
<summary>
Clear the internal maps of all levels
</summary>
<remarks>
<para>
Clear the internal maps of all levels
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32)">
<summary>
Create a new Level and add it to the map
</summary>
<param name="name">the string to display for the Level</param>
<param name="value">the level value to give to the Level</param>
<remarks>
<para>
Create a new Level and add it to the map
</para>
</remarks>
<seealso cref="M:Add(string,int,string)"/>
</member>
<member name="M:log4net.Core.LevelMap.Add(System.String,System.Int32,Sys
tem.String)">
<summary>
Create a new Level and add it to the map
</summary>
<param name="name">the string to display for the Level</param>
<param name="value">the level value to give to the Level</param>
<param name="displayName">the display name to give to the Level</par
am>
<remarks>
<para>
Create a new Level and add it to the map
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelMap.Add(log4net.Core.Level)">
<summary>
Add a Level to the map
</summary>
<param name="level">the Level to add</param>
<remarks>
<para>
Add a Level to the map
</para>
</remarks>
</member>
<member name="M:log4net.Core.LevelMap.LookupWithDefault(log4net.Core.Lev
el)">
<summary>
Lookup a named level from the map
</summary>
<param name="defaultLevel">the name of the level to lookup is taken
from this level.
If the level is not set on the map then this level is added</param>
<returns>the level in the map with the name specified</returns>
<remarks>
<para>
Lookup a named level from the map. The name of the level to lookup i
s taken
from the <see cref="P:log4net.Core.Level.Name"/> property of the <pa
ramref name="defaultLevel"/>
argument.
</para>
<para>
If no level with the specified name is found then the
<paramref name="defaultLevel"/> argument is added to the level map
and returned.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LevelMap.Item(System.String)">
<summary>
Lookup a <see cref="T:log4net.Core.Level"/> by name
</summary>
<param name="name">The name of the Level to lookup</param>
<returns>a Level from the map with the name specified</returns>
<remarks>
<para>
Returns the <see cref="T:log4net.Core.Level"/> from the
map with the name specified. If the no level is
found then <c>null</c> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LevelMap.AllLevels">
<summary>
Return all possible levels as a list of Level objects.
</summary>
<returns>all possible levels as a list of Level objects</returns>
<remarks>
<para>
Return all possible levels as a list of Level objects.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LocationInfo">
<summary>
The internal representation of caller location information.
</summary>
<remarks>
<para>
This class uses the <c>System.Diagnostics.StackTrace</c> class to ge
nerate
a call stack. The caller's information is then extracted from this s
tack.
</para>
<para>
The <c>System.Diagnostics.StackTrace</c> class is not supported on t
he
.NET Compact Framework 1.0 therefore caller location information is
not
available on that framework.
</para>
<para>
The <c>System.Diagnostics.StackTrace</c> class has this to say about
Release builds:
</para>
<para>
"StackTrace information will be most informative with Debug build co
nfigurations.
By default, Debug builds include debug symbols, while Release builds
do not. The
debug symbols contain most of the file, method name, line number, an
d column
information used in constructing StackFrame and StackTrace objects.
StackTrace
might not report as many method calls as expected, due to code trans
formations
that occur during optimization."
</para>
<para>
This means that in a Release build the caller information may be inc
omplete or may
not exist at all! Therefore caller location information cannot be re
lied upon in a Release build.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Core.LocationInfo.NA">
<summary>
When location information is not available the constant
<c>NA</c> is returned. Current value of this string
constant is <b>?</b>.
</summary>
</member>
<member name="M:log4net.Core.LocationInfo.#ctor(System.Type)">
<summary>
Constructor
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.Location
Info"/>
class based on the current thread.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LocationInfo.#ctor(System.String,System.Str
ing,System.String,System.String)">
<summary>
Constructor
</summary>
<param name="className">The fully qualified class name.</param>
<param name="methodName">The method name.</param>
<param name="fileName">The file name.</param>
<param name="lineNumber">The line number of the method within the fi
le.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.Location
Info"/>
class with the specified data.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LocationInfo.declaringType">
<summary>
The fully qualified type of the LocationInfo class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.ClassName">
<summary>
Gets the fully qualified class name of the caller making the logging

request.
</summary>
<value>
The fully qualified class name of the caller making the logging
request.
</value>
<remarks>
<para>
Gets the fully qualified class name of the caller making the logging

request.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.FileName">
<summary>
Gets the file name of the caller.
</summary>
<value>
The file name of the caller.
</value>
<remarks>
<para>
Gets the file name of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.LineNumber">
<summary>
Gets the line number of the caller.
</summary>
<value>
The line number of the caller.
</value>
<remarks>
<para>
Gets the line number of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.MethodName">
<summary>
Gets the method name of the caller.
</summary>
<value>
The method name of the caller.
</value>
<remarks>
<para>
Gets the method name of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.FullInfo">
<summary>
Gets all available caller information
</summary>
<value>
All available caller information, in the format
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
</value>
<remarks>
<para>
Gets all available caller information, in the format
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
</para>
</remarks>
</member>
<member name="P:log4net.Core.LocationInfo.StackFrames">
<summary>
Gets the stack frames from the stack trace of the caller making the
log request
</summary>
</member>
<member name="T:log4net.Core.LoggerManager">
<summary>
Static manager that controls the creation of repositories
</summary>
<remarks>
<para>
Static manager that controls the creation of repositories
</para>
<para>
This class is used by the wrapper managers (e.g. <see cref="T:log4ne
t.LogManager"/>)
to provide access to the <see cref="T:log4net.Core.ILogger"/> object
s.
</para>
<para>
This manager also holds the <see cref="T:log4net.Core.IRepositorySel
ector"/> that is used to
lookup and create repositories. The selector can be set either progr
ammatically using
the <see cref="P:log4net.Core.LoggerManager.RepositorySelector"/> pr
operty, or by setting the <c>log4net.RepositorySelector</c>
AppSetting in the applications config file to the fully qualified ty
pe name of the
selector to use.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.LoggerManager.#ctor">
<summary>
Private constructor to prevent instances. Only static methods should
be used.
</summary>
<remarks>
<para>
Private constructor to prevent instances. Only static methods should
be used.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.#cctor">
<summary>
Hook the shutdown event
</summary>
<remarks>
<para>
On the full .NET runtime, the static constructor hooks up the
<c>AppDomain.ProcessExit</c> and <c>AppDomain.DomainUnload</c>> even
ts.
These are used to shutdown the log4net system as the application exi
ts.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.RegisterAppDomainEvents">
<summary>
Register for ProcessExit and DomainUnload events on the AppDomain
</summary>
<remarks>
<para>
This needs to be in a separate method because the events make
a LinkDemand for the ControlAppDomain SecurityPermission. Because
this is a LinkDemand it is demanded at JIT time. Therefore we cannot
catch the exception in the method itself, we have to catch it in the
caller.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.St
ring)">
<summary>
Return the default <see cref="T:log4net.Repository.ILoggerRepository
"/> instance.
</summary>
<param name="repository">the repository to lookup in</param>
<returns>Return the default <see cref="T:log4net.Repository.ILoggerR
epository"/> instance</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repository"/> argument.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLoggerRepository(System.Re
flection.Assembly)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
</member>
<member name="M:log4net.Core.LoggerManager.GetRepository(System.String)"
>
<summary>
Return the default <see cref="T:log4net.Repository.ILoggerRepository
"/> instance.
</summary>
<param name="repository">the repository to lookup in</param>
<returns>Return the default <see cref="T:log4net.Repository.ILoggerR
epository"/> instance</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repository"/> argument.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetRepository(System.Reflecti
on.Assembly)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
<remarks>
<para>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.Exists(System.String,System.S
tring)">
<summary>
Returns the named logger if it exists.
</summary>
<param name="repository">The repository to lookup in.</param>
<param name="name">The fully qualified logger name to look for.</par
am>
<returns>
The logger found, or <c>null</c> if the named logger does not exist
in the
specified repository.
</returns>
<remarks>
<para>
If the named logger exists (in the specified repository) then it
returns a reference to the logger, otherwise it returns
<c>null</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.Exists(System.Reflection.Asse
mbly,System.String)">
<summary>
Returns the named logger if it exists.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<param name="name">The fully qualified logger name to look for.</par
am>
<returns>
The logger found, or <c>null</c> if the named logger does not exist
in the
specified assembly's repository.
</returns>
<remarks>
<para>
If the named logger exists (in the specified assembly's repository)
then it
returns a reference to the logger, otherwise it returns
<c>null</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.Stri
ng)">
<summary>
Returns all the currently defined loggers in the specified repositor
y.
</summary>
<param name="repository">The repository to lookup in.</param>
<returns>All the defined loggers.</returns>
<remarks>
<para>
The root logger is <b>not</b> included in the returned array.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetCurrentLoggers(System.Refl
ection.Assembly)">
<summary>
Returns all the currently defined loggers in the specified assembly'
s repository.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<returns>All the defined loggers.</returns>
<remarks>
<para>
The root logger is <b>not</b> included in the returned array.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLogger(System.String,Syste
m.String)">
<summary>
Retrieves or creates a named logger.
</summary>
<param name="repository">The repository to lookup in.</param>
<param name="name">The name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
<remarks>
<para>
Retrieves a logger named as the <paramref name="name"/>
parameter. If the named logger already exists, then the
existing instance will be returned. Otherwise, a new instance is
created.
</para>
<para>
By default, loggers do not have a set level but inherit
it from the hierarchy. This is one of the central features of
log4net.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.A
ssembly,System.String)">
<summary>
Retrieves or creates a named logger.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<param name="name">The name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
<remarks>
<para>
Retrieves a logger named as the <paramref name="name"/>
parameter. If the named logger already exists, then the
existing instance will be returned. Otherwise, a new instance is
created.
</para>
<para>
By default, loggers do not have a set level but inherit
it from the hierarchy. This is one of the central features of
log4net.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLogger(System.String,Syste
m.Type)">
<summary>
Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
</summary>
<param name="repository">The repository to lookup in.</param>
<param name="type">The <paramref name="type"/> of which the fullname
will be used as the name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
<remarks>
<para>
Gets the logger for the fully qualified name of the type specified.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetLogger(System.Reflection.A
ssembly,System.Type)">
<summary>
Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
</summary>
<param name="repositoryAssembly">the assembly to use to lookup the r
epository</param>
<param name="type">The <paramref name="type"/> of which the fullname
will be used as the name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
<remarks>
<para>
Gets the logger for the fully qualified name of the type specified.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.Shutdown">
<summary>
Shuts down the log4net system.
</summary>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in all the
default repositories.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>
The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.Str
ing)">
<summary>
Shuts down the repository for the repository specified.
</summary>
<param name="repository">The repository to shutdown.</param>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in the
repository for the <paramref name="repository"/> specified.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>
The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.ShutdownRepository(System.Ref
lection.Assembly)">
<summary>
Shuts down the repository for the repository specified.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in the
repository for the repository. The repository is looked up using
the <paramref name="repositoryAssembly"/> specified.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>
The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.Str
ing)">
<summary>
Resets all values contained in this repository instance to their def
aults.
</summary>
<param name="repository">The repository to reset.</param>
<remarks>
<para>
Resets all values contained in the repository instance to their
defaults. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set its default "off" value.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.ResetConfiguration(System.Ref
lection.Assembly)">
<summary>
Resets all values contained in this repository instance to their def
aults.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository to reset.</param>
<remarks>
<para>
Resets all values contained in the repository instance to their
defaults. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set its default "off" value.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.CreateDomain(System.String)">
<summary>
Creates a repository with the specified name.
</summary>
<param name="repository">The name of the repository, this must be un
ique amongst repositories.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
Creates the default type of <see cref="T:log4net.Repository.ILoggerR
epository"/> which is a
<see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.Core.LoggerManager.CreateRepository(System.Strin
g)">
<summary>
Creates a repository with the specified name.
</summary>
<param name="repository">The name of the repository, this must be un
ique amongst repositories.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
Creates the default type of <see cref="T:log4net.Repository.ILoggerR
epository"/> which is a
<see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.Core.LoggerManager.CreateDomain(System.String,Sy
stem.Type)">
<summary>
Creates a repository with the specified name and repository type.
</summary>
<param name="repository">The name of the repository, this must be un
ique to the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An Exception will be thrown if the repository already exists.
</para>
</remarks>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.Core.LoggerManager.CreateRepository(System.Strin
g,System.Type)">
<summary>
Creates a repository with the specified name and repository type.
</summary>
<param name="repository">The name of the repository, this must be un
ique to the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An Exception will be thrown if the repository already exists.
</para>
</remarks>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.Core.LoggerManager.CreateDomain(System.Reflectio
n.Assembly,System.Type)">
<summary>
Creates a repository for the specified assembly and repository type.
</summary>
<param name="repositoryAssembly">The assembly to use to get the name
of the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.CreateRepository(System.Refle
ction.Assembly,System.Type)">
<summary>
Creates a repository for the specified assembly and repository type.
</summary>
<param name="repositoryAssembly">The assembly to use to get the name
of the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetAllRepositories">
<summary>
Gets an array of all currently defined repositories.
</summary>
<returns>An array of all the known <see cref="T:log4net.Repository.I
LoggerRepository"/> objects.</returns>
<remarks>
<para>
Gets an array of all currently defined repositories.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.GetVersionInfo">
<summary>
Internal method to get pertinent version info.
</summary>
<returns>A string of version info.</returns>
</member>
<member name="M:log4net.Core.LoggerManager.OnDomainUnload(System.Object,
System.EventArgs)">
<summary>
Called when the <see cref="E:System.AppDomain.DomainUnload"/> event
fires
</summary>
<param name="sender">the <see cref="T:System.AppDomain"/> that is ex
iting</param>
<param name="e">null</param>
<remarks>
<para>
Called when the <see cref="E:System.AppDomain.DomainUnload"/> event
fires.
</para>
<para>
When the event is triggered the log4net system is <see cref="M:Shutd
own()"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggerManager.OnProcessExit(System.Object,S
ystem.EventArgs)">
<summary>
Called when the <see cref="E:System.AppDomain.ProcessExit"/> event f
ires
</summary>
<param name="sender">the <see cref="T:System.AppDomain"/> that is ex
iting</param>
<param name="e">null</param>
<remarks>
<para>
Called when the <see cref="E:System.AppDomain.ProcessExit"/> event f
ires.
</para>
<para>
When the event is triggered the log4net system is <see cref="M:Shutd
own()"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggerManager.declaringType">
<summary>
The fully qualified type of the LoggerManager class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="F:log4net.Core.LoggerManager.s_repositorySelector">
<summary>
Initialize the default repository selector
</summary>
</member>
<member name="P:log4net.Core.LoggerManager.RepositorySelector">
<summary>
Gets or sets the repository selector used by the <see cref="T:log4ne
t.LogManager"/>.
</summary>
<value>
The repository selector used by the <see cref="T:log4net.LogManager"
/>.
</value>
<remarks>
<para>
The repository selector (<see cref="T:log4net.Core.IRepositorySelect
or"/>) is used by
the <see cref="T:log4net.LogManager"/> to create and select reposito
ries
(<see cref="T:log4net.Repository.ILoggerRepository"/>).
</para>
<para>
The caller to <see cref="T:log4net.LogManager"/> supplies either a s
tring name
or an assembly (if not supplied the assembly is inferred using
<see cref="M:Assembly.GetCallingAssembly()"/>).
</para>
<para>
This context is used by the selector to lookup a specific repository
.
</para>
<para>
For the full .NET Framework, the default repository is <c>DefaultRep
ositorySelector</c>;
for the .NET Compact Framework <c>CompactRepositorySelector</c> is t
he default
repository.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LoggerWrapperImpl">
<summary>
Implementation of the <see cref="T:log4net.Core.ILoggerWrapper"/> in
terface.
</summary>
<remarks>
<para>
This class should be used as the base for all wrapper implementation
s.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.LoggerWrapperImpl.#ctor(log4net.Core.ILogge
r)">
<summary>
Constructs a new wrapper for the specified logger.
</summary>
<param name="logger">The logger to wrap.</param>
<remarks>
<para>
Constructs a new wrapper for the specified logger.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggerWrapperImpl.m_logger">
<summary>
The logger that this object is wrapping
</summary>
</member>
<member name="P:log4net.Core.LoggerWrapperImpl.Logger">
<summary>
Gets the implementation behind this wrapper object.
</summary>
<value>
The <see cref="T:log4net.Core.ILogger"/> object that this object is
implementing.
</value>
<remarks>
<para>
The <c>Logger</c> object may not be the same object as this object
because of logger decorators.
</para>
<para>
This gets the actual underlying objects that is used to process
the log events.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LoggingEventData">
<summary>
Portable data structure used by <see cref="T:log4net.Core.LoggingEve
nt"/>
</summary>
<remarks>
<para>
Portable data structure used by <see cref="T:log4net.Core.LoggingEve
nt"/>
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.LoggingEventData.LoggerName">
<summary>
The logger name.
</summary>
<remarks>
<para>
The logger name.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.Level">
<summary>
Level of logging event.
</summary>
<remarks>
<para>
Level of logging event. Level cannot be Serializable
because it is a flyweight. Due to its special serialization it
cannot be declared final either.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.Message">
<summary>
The application supplied message.
</summary>
<remarks>
<para>
The application supplied message of logging event.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.ThreadName">
<summary>
The name of thread
</summary>
<remarks>
<para>
The name of thread in which this logging event was generated
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.TimeStamp">
<summary>
The time the event was logged
</summary>
<remarks>
<para>
The TimeStamp is stored in the local time zone for this computer.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.LocationInfo">
<summary>
Location information for the caller.
</summary>
<remarks>
<para>
Location information for the caller.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.UserName">
<summary>
String representation of the user
</summary>
<remarks>
<para>
String representation of the user's windows name,
like DOMAIN\username
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.Identity">
<summary>
String representation of the identity.
</summary>
<remarks>
<para>
String representation of the current thread's principal identity.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.ExceptionString">
<summary>
The string representation of the exception
</summary>
<remarks>
<para>
The string representation of the exception
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.Domain">
<summary>
String representation of the AppDomain.
</summary>
<remarks>
<para>
String representation of the AppDomain.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEventData.Properties">
<summary>
Additional event specific properties
</summary>
<remarks>
<para>
A logger or an appender may attach additional
properties to specific events. These properties
have a string key and an object value.
</para>
</remarks>
</member>
<member name="T:log4net.Core.FixFlags">
<summary>
Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> pr
operty
</summary>
<remarks>
<para>
Flags passed to the <see cref="P:log4net.Core.LoggingEvent.Fix"/> pr
operty
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.FixFlags.Mdc">
<summary>
Fix the MDC
</summary>
</member>
<member name="F:log4net.Core.FixFlags.Ndc">
<summary>
Fix the NDC
</summary>
</member>
<member name="F:log4net.Core.FixFlags.Message">
<summary>
Fix the rendered message
</summary>
</member>
<member name="F:log4net.Core.FixFlags.ThreadName">
<summary>
Fix the thread name
</summary>
</member>
<member name="F:log4net.Core.FixFlags.LocationInfo">
<summary>
Fix the callers location information
</summary>
<remarks>
CAUTION: Very slow to generate
</remarks>
</member>
<member name="F:log4net.Core.FixFlags.UserName">
<summary>
Fix the callers windows user name
</summary>
<remarks>
CAUTION: Slow to generate
</remarks>
</member>
<member name="F:log4net.Core.FixFlags.Domain">
<summary>
Fix the domain friendly name
</summary>
</member>
<member name="F:log4net.Core.FixFlags.Identity">
<summary>
Fix the callers principal name
</summary>
<remarks>
CAUTION: May be slow to generate
</remarks>
</member>
<member name="F:log4net.Core.FixFlags.Exception">
<summary>
Fix the exception text
</summary>
</member>
<member name="F:log4net.Core.FixFlags.Properties">
<summary>
Fix the event properties. Active properties must implement <see cref
="T:log4net.Core.IFixingRequired"/> in order to be eligible for fixing.
</summary>
</member>
<member name="F:log4net.Core.FixFlags.None">
<summary>
No fields fixed
</summary>
</member>
<member name="F:log4net.Core.FixFlags.All">
<summary>
All fields fixed
</summary>
</member>
<member name="F:log4net.Core.FixFlags.Partial">
<summary>
Partial fields fixed
</summary>
<remarks>
<para>
This set of partial fields gives good performance. The following fie
lds are fixed:
</para>
<list type="bullet">
<item><description><see cref="F:log4net.Core.FixFlags.Message"/></de
scription></item>
<item><description><see cref="F:log4net.Core.FixFlags.ThreadName"/><
/description></item>
<item><description><see cref="F:log4net.Core.FixFlags.Exception"/></
description></item>
<item><description><see cref="F:log4net.Core.FixFlags.Domain"/></des
cription></item>
<item><description><see cref="F:log4net.Core.FixFlags.Properties"/><
/description></item>
</list>
</remarks>
</member>
<member name="T:log4net.Core.LoggingEvent">
<summary>
The internal representation of logging events.
</summary>
<remarks>
<para>
When an affirmative decision is made to log then a
<see cref="T:log4net.Core.LoggingEvent"/> instance is created. This
instance
is passed around to the different log4net components.
</para>
<para>
This class is of concern to those wishing to extend log4net.
</para>
<para>
Some of the values in instances of <see cref="T:log4net.Core.Logging
Event"/>
are considered volatile, that is the values are correct at the
time the event is delivered to appenders, but will not be consistent
at any time afterwards. If an event is to be stored and then process
ed
at a later time these volatile values must be fixed by calling
<see cref="M:FixVolatileData()"/>. There is a performance penalty
for incurred by calling <see cref="M:FixVolatileData()"/> but it
is essential to maintaining data consistency.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Douglas de la Torre</author>
<author>Daniel Cazzulino</author>
</member>
<member name="F:log4net.Core.LoggingEvent.HostNameProperty">
<summary>
The key into the Properties map for the host name value.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.IdentityProperty">
<summary>
The key into the Properties map for the thread identity value.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.UserNameProperty">
<summary>
The key into the Properties map for the user name value.
</summary>
</member>
<member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repo
sitory.ILoggerRepository,System.String,log4net.Core.Level,System.Object,System.E
xception)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Core.LoggingE
vent"/> class
from the supplied parameters.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="repository">The repository this event is logged in.</pa
ram>
<param name="loggerName">The name of the logger of this event.</para
m>
<param name="level">The level of this event.</param>
<param name="message">The message of this event.</param>
<param name="exception">The exception for this event.</param>
<remarks>
<para>
Except <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>, <see cre
f="P:log4net.Core.LoggingEvent.Level"/> and <see cref="P:log4net.Core.LoggingEve
nt.LoggerName"/>,
all fields of <c>LoggingEvent</c> are filled when actually needed. C
all
<see cref="M:FixVolatileData()"/> to cache all data locally
to prevent inconsistencies.
</para>
<para>This method is called by the log4net framework
to create a logging event.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repo
sitory.ILoggerRepository,log4net.Core.LoggingEventData,log4net.Core.FixFlags)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Core.LoggingE
vent"/> class
using specific data.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="repository">The repository this event is logged in.</pa
ram>
<param name="data">Data used to initialize the logging event.</param
>
<param name="fixedData">The fields in the <paranref name="data"/> st
ruct that have already been fixed.</param>
<remarks>
<para>
This constructor is provided to allow a <see cref="T:log4net.Core.Lo
ggingEvent"/>
to be created independently of the log4net framework. This can
be useful if you require a custom serialization scheme.
</para>
<para>
Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obta
in an
instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
</para>
<para>
The <paramref name="fixedData"/> parameter should be used to specify
which fields in the
<paramref name="data"/> struct have been preset. Fields not specifie
d in the <paramref name="fixedData"/>
will be captured from the environment if requested or fixed.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.#ctor(System.Type,log4net.Repo
sitory.ILoggerRepository,log4net.Core.LoggingEventData)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Core.LoggingE
vent"/> class
using specific data.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="repository">The repository this event is logged in.</pa
ram>
<param name="data">Data used to initialize the logging event.</param
>
<remarks>
<para>
This constructor is provided to allow a <see cref="T:log4net.Core.Lo
ggingEvent"/>
to be created independently of the log4net framework. This can
be useful if you require a custom serialization scheme.
</para>
<para>
Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obta
in an
instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
</para>
<para>
This constructor sets this objects <see cref="P:log4net.Core.Logging
Event.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
this assumes that all the data relating to this event is passed in v
ia the <paramref name="data"/>
parameter and no other data should be captured from the environment.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.#ctor(log4net.Core.LoggingEven
tData)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Core.LoggingE
vent"/> class
using specific data.
</summary>
<param name="data">Data used to initialize the logging event.</param
>
<remarks>
<para>
This constructor is provided to allow a <see cref="T:log4net.Core.Lo
ggingEvent"/>
to be created independently of the log4net framework. This can
be useful if you require a custom serialization scheme.
</para>
<para>
Use the <see cref="M:GetLoggingEventData(FixFlags)"/> method to obta
in an
instance of the <see cref="T:log4net.Core.LoggingEventData"/> class.
</para>
<para>
This constructor sets this objects <see cref="P:log4net.Core.Logging
Event.Fix"/> flags to <see cref="F:log4net.Core.FixFlags.All"/>,
this assumes that all the data relating to this event is passed in v
ia the <paramref name="data"/>
parameter and no other data should be captured from the environment.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.#ctor(System.Runtime.Serializa
tion.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialization constructor
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> that holds the serialized object data.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.
StreamingContext"/> that contains contextual information about the source or des
tination.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.LoggingE
vent"/> class
with serialized data.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.EnsureRepository(log4net.Repos
itory.ILoggerRepository)">
<summary>
Ensure that the repository is set.
</summary>
<param name="repository">the value for the repository</param>
</member>
<member name="M:log4net.Core.LoggingEvent.WriteRenderedMessage(System.IO
.TextWriter)">
<summary>
Write the rendered message to a TextWriter
</summary>
<param name="writer">the writer to write the message to</param>
<remarks>
<para>
Unlike the <see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/>
property this method
does store the message data in the internal cache. Therefore
if called only once this method should be faster than the
<see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property,
however if the message is
to be accessed multiple times then the property will be more efficie
nt.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetObjectData(System.Runtime.S
erialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serializes this object into the <see cref="T:System.Runtime.Serializ
ation.SerializationInfo"/> provided.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> to populate with data.</param>
<param name="context">The destination for this serialization.</param
>
<remarks>
<para>
The data in this event must be fixed before it can be serialized.
</para>
<para>
The <see cref="M:FixVolatileData()"/> method must be called during t
he
<see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.Loggin
gEvent)"/> method call if this event
is to be used outside that method.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetLoggingEventData">
<summary>
Gets the portable data for this <see cref="T:log4net.Core.LoggingEve
nt"/>.
</summary>
<returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this
event.</returns>
<remarks>
<para>
A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed u
sing a
<see cref="T:log4net.Core.LoggingEventData"/> instance.
</para>
<para>
Does a <see cref="F:log4net.Core.FixFlags.Partial"/> fix of the data
in the logging event before returning the event data.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetLoggingEventData(log4net.Co
re.FixFlags)">
<summary>
Gets the portable data for this <see cref="T:log4net.Core.LoggingEve
nt"/>.
</summary>
<param name="fixFlags">The set of data to ensure is fixed in the Log
gingEventData</param>
<returns>The <see cref="T:log4net.Core.LoggingEventData"/> for this
event.</returns>
<remarks>
<para>
A new <see cref="T:log4net.Core.LoggingEvent"/> can be constructed u
sing a
<see cref="T:log4net.Core.LoggingEventData"/> instance.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetExceptionStrRep">
<summary>
Returns this event's exception's rendered using the
<see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
</summary>
<returns>
This event's exception's rendered using the <see cref="P:log4net.Rep
ository.ILoggerRepository.RendererMap"/>.
</returns>
<remarks>
<para>
<b>Obsolete. Use <see cref="M:log4net.Core.LoggingEvent.GetException
String"/> instead.</b>
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetExceptionString">
<summary>
Returns this event's exception's rendered using the
<see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
</summary>
<returns>
This event's exception's rendered using the <see cref="P:log4net.Rep
ository.ILoggerRepository.RendererMap"/>.
</returns>
<remarks>
<para>
Returns this event's exception's rendered using the
<see cref="P:log4net.Repository.ILoggerRepository.RendererMap"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.FixVolatileData">
<summary>
Fix instance fields that hold volatile data.
</summary>
<remarks>
<para>
Some of the values in instances of <see cref="T:log4net.Core.Logging
Event"/>
are considered volatile, that is the values are correct at the
time the event is delivered to appenders, but will not be consistent
at any time afterwards. If an event is to be stored and then process
ed
at a later time these volatile values must be fixed by calling
<see cref="M:FixVolatileData()"/>. There is a performance penalty
incurred by calling <see cref="M:FixVolatileData()"/> but it
is essential to maintaining data consistency.
</para>
<para>
Calling <see cref="M:FixVolatileData()"/> is equivalent to
calling <see cref="M:FixVolatileData(bool)"/> passing the parameter
<c>false</c>.
</para>
<para>
See <see cref="M:FixVolatileData(bool)"/> for more
information.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.FixVolatileData(System.Boolean
)">
<summary>
Fixes instance fields that hold volatile data.
</summary>
<param name="fastButLoose">Set to <c>true</c> to not fix data that t
akes a long time to fix.</param>
<remarks>
<para>
Some of the values in instances of <see cref="T:log4net.Core.Logging
Event"/>
are considered volatile, that is the values are correct at the
time the event is delivered to appenders, but will not be consistent
at any time afterwards. If an event is to be stored and then process
ed
at a later time these volatile values must be fixed by calling
<see cref="M:FixVolatileData()"/>. There is a performance penalty
for incurred by calling <see cref="M:FixVolatileData()"/> but it
is essential to maintaining data consistency.
</para>
<para>
The <paramref name="fastButLoose"/> param controls the data that
is fixed. Some of the data that can be fixed takes a long time to
generate, therefore if you do not require those settings to be fixed
they can be ignored by setting the <paramref name="fastButLoose"/> p
aram
to <c>true</c>. This setting will ignore the <see cref="P:log4net.Co
re.LoggingEvent.LocationInformation"/>
and <see cref="P:log4net.Core.LoggingEvent.UserName"/> settings.
</para>
<para>
Set <paramref name="fastButLoose"/> to <c>false</c> to ensure that a
ll
settings are fixed.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.FixVolatileData(log4net.Core.F
ixFlags)">
<summary>
Fix the fields specified by the <see cref="T:log4net.Core.FixFlags"/
> parameter
</summary>
<param name="flags">the fields to fix</param>
<remarks>
<para>
Only fields specified in the <paramref name="flags"/> will be fixed.
Fields will not be fixed if they have previously been fixed.
It is not possible to 'unfix' a field.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.LookupProperty(System.String)"
>
<summary>
Lookup a composite property in this event
</summary>
<param name="key">the key for the property to lookup</param>
<returns>the value for the property</returns>
<remarks>
<para>
This event has composite properties that combine together properties
from
several different contexts in the following order:
<list type="definition">
<item>
<term>this events properties</term>
<description>
This event has <see cref="P:log4net.Core.LoggingEvent.Pr
operties"/> that can be set. These
properties are specific to this event only.
</description>
</item>
<item>
<term>the thread properties</term>
<description>
The <see cref="P:log4net.ThreadContext.Properties"/> tha
t are set on the current
thread. These properties are shared by all events logged
on this thread.
</description>
</item>
<item>
<term>the global properties</term>
<description>
The <see cref="P:log4net.GlobalContext.Properties"/> tha
t are set globally. These
properties are shared by all the threads in the AppDomai
n.
</description>
</item>
</list>
</para>
</remarks>
</member>
<member name="M:log4net.Core.LoggingEvent.GetProperties">
<summary>
Get all the composite properties in this event
</summary>
<returns>the <see cref="T:log4net.Util.PropertiesDictionary"/> conta
ining all the properties</returns>
<remarks>
<para>
See <see cref="M:log4net.Core.LoggingEvent.LookupProperty(System.Str
ing)"/> for details of the composite properties
stored by the event.
</para>
<para>
This method returns a single <see cref="T:log4net.Util.PropertiesDic
tionary"/> containing all the
properties defined for this event.
</para>
</remarks>
</member>
<member name="F:log4net.Core.LoggingEvent.m_data">
<summary>
The internal logging event data.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.m_compositeProperties">
<summary>
The internal logging event data.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.m_eventProperties">
<summary>
The internal logging event data.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.m_callerStackBoundaryDeclaring
Type">
<summary>
The fully qualified Type of the calling
logger class in the stack frame (i.e. the declaring type of the meth
od).
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.m_message">
<summary>
The application supplied message of logging event.
</summary>
</member>
<member name="F:log4net.Core.LoggingEvent.m_thrownException">
<summary>
The exception that was thrown.
</summary>
<remarks>
This is not serialized. The string representation
is serialized instead.
</remarks>
</member>
<member name="F:log4net.Core.LoggingEvent.m_repository">
<summary>
The repository that generated the logging event
</summary>
<remarks>
This is not serialized.
</remarks>
</member>
<member name="F:log4net.Core.LoggingEvent.m_fixFlags">
<summary>
The fix state for this event
</summary>
<remarks>
These flags indicate which fields have been fixed.
Not serialized.
</remarks>
</member>
<member name="F:log4net.Core.LoggingEvent.m_cacheUpdatable">
<summary>
Indicated that the internal cache is updateable (ie not fixed)
</summary>
<remarks>
This is a seperate flag to m_fixFlags as it allows incrementel fixin
g and simpler
changes in the caching strategy.
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.StartTime">
<summary>
Gets the time when the current process started.
</summary>
<value>
This is the time when this process started.
</value>
<remarks>
<para>
The TimeStamp is stored in the local time zone for this computer.
</para>
<para>
Tries to get the start time for the current process.
Failing that it returns the time of the first call to
this property.
</para>
<para>
Note that AppDomains may be loaded and unloaded within the
same process without the process terminating and therefore
without the process start time being reset.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Level">
<summary>
Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logg
ing event.
</summary>
<value>
The <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logging e
vent.
</value>
<remarks>
<para>
Gets the <see cref="P:log4net.Core.LoggingEvent.Level"/> of the logg
ing event.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.TimeStamp">
<summary>
Gets the time of the logging event.
</summary>
<value>
The time of the logging event.
</value>
<remarks>
<para>
The TimeStamp is stored in the local time zone for this computer.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.LoggerName">
<summary>
Gets the name of the logger that logged the event.
</summary>
<value>
The name of the logger that logged the event.
</value>
<remarks>
<para>
Gets the name of the logger that logged the event.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.LocationInformation">
<summary>
Gets the location information for this logging event.
</summary>
<value>
The location information for this logging event.
</value>
<remarks>
<para>
The collected information is cached for future use.
</para>
<para>
See the <see cref="T:log4net.Core.LocationInfo"/> class for more inf
ormation on
supported frameworks and the different behavior in Debug and
Release builds.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.MessageObject">
<summary>
Gets the message object used to initialize this event.
</summary>
<value>
The message object used to initialize this event.
</value>
<remarks>
<para>
Gets the message object used to initialize this event.
Note that this event may not have a valid message object.
If the event is serialized the message object will not
be transferred. To get the text of the message the
<see cref="P:log4net.Core.LoggingEvent.RenderedMessage"/> property m
ust be used
not this property.
</para>
<para>
If there is no defined message object for this event then
null will be returned.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.ExceptionObject">
<summary>
Gets the exception object used to initialize this event.
</summary>
<value>
The exception object used to initialize this event.
</value>
<remarks>
<para>
Gets the exception object used to initialize this event.
Note that this event may not have a valid exception object.
If the event is serialized the exception object will not
be transferred. To get the text of the exception the
<see cref="M:log4net.Core.LoggingEvent.GetExceptionString"/> method
must be used
not this property.
</para>
<para>
If there is no defined exception object for this event then
null will be returned.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Repository">
<summary>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that this e
vent was created in.
</summary>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that this e
vent was created in.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.RenderedMessage">
<summary>
Gets the message, rendered through the <see cref="P:log4net.Reposito
ry.ILoggerRepository.RendererMap"/>.
</summary>
<value>
The message rendered through the <see cref="P:log4net.Repository.ILo
ggerRepository.RendererMap"/>.
</value>
<remarks>
<para>
The collected information is cached for future use.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.ThreadName">
<summary>
Gets the name of the current thread.
</summary>
<value>
The name of the current thread, or the thread ID when
the name is not available.
</value>
<remarks>
<para>
The collected information is cached for future use.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.UserName">
<summary>
Gets the name of the current user.
</summary>
<value>
The name of the current user, or <c>NOT AVAILABLE</c> when the
underlying runtime has no support for retrieving the name of the
current user.
</value>
<remarks>
<para>
Calls <c>WindowsIdentity.GetCurrent().Name</c> to get the name of
the current windows user.
</para>
<para>
To improve performance, we could cache the string representation of
the name, and reuse that as long as the identity stayed constant.
Once the identity changed, we would need to re-assign and re-render
the string.
</para>
<para>
However, the <c>WindowsIdentity.GetCurrent()</c> call seems to
return different objects every time, so the current implementation
doesn't do this type of caching.
</para>
<para>
Timing for these operations:
</para>
<list type="table">
<listheader>
<term>Method</term>
<description>Results</description>
</listheader>
<item>
<term><c>WindowsIdentity.GetCurrent()</c></term>
<description>10000 loops, 00:00:00.2031250 seconds</description>
</item>
<item>
<term><c>WindowsIdentity.GetCurrent().Name</c></term>
<description>10000 loops, 00:00:08.0468750 seconds</description>
</item>
</list>
<para>
This means we could speed things up almost 40 times by caching the
value of the <c>WindowsIdentity.GetCurrent().Name</c> property, sinc
e
this takes (8.04-0.20) = 7.84375 seconds.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Identity">
<summary>
Gets the identity of the current thread principal.
</summary>
<value>
The string name of the identity of the current thread principal.
</value>
<remarks>
<para>
Calls <c>System.Threading.Thread.CurrentPrincipal.Identity.Name</c>
to get
the name of the current thread principal.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Domain">
<summary>
Gets the AppDomain friendly name.
</summary>
<value>
The AppDomain friendly name.
</value>
<remarks>
<para>
Gets the AppDomain friendly name.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Properties">
<summary>
Additional event specific properties.
</summary>
<value>
Additional event specific properties.
</value>
<remarks>
<para>
A logger or an appender may attach additional
properties to specific events. These properties
have a string key and an object value.
</para>
<para>
This property is for events that have been added directly to
this event. The aggregate properties (which include these
event properties) can be retrieved using <see cref="M:log4net.Core.L
oggingEvent.LookupProperty(System.String)"/>
and <see cref="M:log4net.Core.LoggingEvent.GetProperties"/>.
</para>
<para>
Once the properties have been fixed <see cref="P:log4net.Core.Loggin
gEvent.Fix"/> this property
returns the combined cached properties. This ensures that updates to
this property are always reflected in the underlying storage. When
returning the combined properties there may be more keys in the
Dictionary than expected.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LoggingEvent.Fix">
<summary>
The fixed fields in this event
</summary>
<value>
The set of fields that are fixed in this event
</value>
<remarks>
<para>
Fields will not be fixed if they have previously been fixed.
It is not possible to 'unfix' a field.
</para>
</remarks>
</member>
<member name="T:log4net.Core.LogImpl">
<summary>
Implementation of <see cref="T:log4net.ILog"/> wrapper interface.
</summary>
<remarks>
<para>
This implementation of the <see cref="T:log4net.ILog"/> interface
forwards to the <see cref="T:log4net.Core.ILogger"/> held by the bas
e class.
</para>
<para>
This logger has methods to allow the caller to log at the following
levels:
</para>
<list type="definition">
<item>
<term>DEBUG</term>
<description>
The <see cref="M:Debug(object)"/> and <see cref="M:DebugFormat(s
tring, object[])"/> methods log messages
at the <c>DEBUG</c> level. That is the level with that name defi
ned in the
repositories <see cref="P:log4net.Repository.ILoggerRepository.L
evelMap"/>. The default value
for this level is <see cref="F:log4net.Core.Level.Debug"/>. The
<see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
property tests if this level is enabled for logging.
</description>
</item>
<item>
<term>INFO</term>
<description>
The <see cref="M:Info(object)"/> and <see cref="M:InfoFormat(str
ing, object[])"/> methods log messages
at the <c>INFO</c> level. That is the level with that name defin
ed in the
repositories <see cref="P:log4net.Repository.ILoggerRepository.L
evelMap"/>. The default value
for this level is <see cref="F:log4net.Core.Level.Info"/>. The <
see cref="P:log4net.Core.LogImpl.IsInfoEnabled"/>
property tests if this level is enabled for logging.
</description>
</item>
<item>
<term>WARN</term>
<description>
The <see cref="M:Warn(object)"/> and <see cref="M:WarnFormat(str
ing, object[])"/> methods log messages
at the <c>WARN</c> level. That is the level with that name defin
ed in the
repositories <see cref="P:log4net.Repository.ILoggerRepository.L
evelMap"/>. The default value
for this level is <see cref="F:log4net.Core.Level.Warn"/>. The <
see cref="P:log4net.Core.LogImpl.IsWarnEnabled"/>
property tests if this level is enabled for logging.
</description>
</item>
<item>
<term>ERROR</term>
<description>
The <see cref="M:Error(object)"/> and <see cref="M:ErrorFormat(s
tring, object[])"/> methods log messages
at the <c>ERROR</c> level. That is the level with that name defi
ned in the
repositories <see cref="P:log4net.Repository.ILoggerRepository.L
evelMap"/>. The default value
for this level is <see cref="F:log4net.Core.Level.Error"/>. The
<see cref="P:log4net.Core.LogImpl.IsErrorEnabled"/>
property tests if this level is enabled for logging.
</description>
</item>
<item>
<term>FATAL</term>
<description>
The <see cref="M:Fatal(object)"/> and <see cref="M:FatalFormat(s
tring, object[])"/> methods log messages
at the <c>FATAL</c> level. That is the level with that name defi
ned in the
repositories <see cref="P:log4net.Repository.ILoggerRepository.L
evelMap"/>. The default value
for this level is <see cref="F:log4net.Core.Level.Fatal"/>. The
<see cref="P:log4net.Core.LogImpl.IsFatalEnabled"/>
property tests if this level is enabled for logging.
</description>
</item>
</list>
<para>
The values for these levels and their semantic meanings can be chang
ed by
configuring the <see cref="P:log4net.Repository.ILoggerRepository.Le
velMap"/> for the repository.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.ILog">
<summary>
The ILog interface is use by application to log messages into
the log4net framework.
</summary>
<remarks>
<para>
Use the <see cref="T:log4net.LogManager"/> to obtain logger instance
s
that implement this interface. The <see cref="M:LogManager.GetLogger
(Assembly,Type)"/>
static method is used to get logger instances.
</para>
<para>
This class contains methods for logging at different levels and also
has properties for determining if those logging levels are
enabled in the current configuration.
</para>
<para>
This interface can be implemented in different ways. This documentat
ion
specifies reasonable behavior that a caller can expect from the actu
al
implementation, however different implementations reserve the right
to
do things differently.
</para>
</remarks>
<example>Simple example of logging messages
<code lang="C#">
ILog log = LogManager.GetLogger("application-log");

log.Info("Application Start");
log.Debug("This is a debug message");

if (log.IsDebugEnabled)
{
log.Debug("This is another debug message");
}
</code>
</example>
<seealso cref="T:log4net.LogManager"/>
<seealso cref="M:LogManager.GetLogger(Assembly, Type)"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.ILog.Debug(System.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Debug"/> level.</overloads>
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>DEBUG</c>
enabled by comparing the level of this logger with the
<see cref="F:log4net.Core.Level.Debug"/> level. If this logger is
<c>DEBUG</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Debug(object,Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:Debug(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.Debug(System.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:Debug(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.DebugFormat(System.String,System.Object[])"
>
<overloads>Log a formatted string with the <see cref="F:log4net.Core
.Level.Debug"/> level.</overloads>
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.DebugFormat(System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.DebugFormat(System.String,System.Object,Sys
tem.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.DebugFormat(System.String,System.Object,Sys
tem.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.DebugFormat(System.IFormatProvider,System.S
tring,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.ILog.Info(System.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Info"/> level.</overloads>
<summary>
Logs a message object with the <see cref="F:log4net.Core.Level.Info"
/> level.
</summary>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by comparing the level of this logger with the
<see cref="F:log4net.Core.Level.Info"/> level. If this logger is
<c>INFO</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Info(object,Exception)"/> form instead.
</para>
</remarks>
<param name="message">The message object to log.</param>
<seealso cref="M:Info(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.Info(System.Object,System.Exception)">
<summary>
Logs a message object with the <c>INFO</c> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:Info(object)"/> form for more detailed informat
ion.
</para>
</remarks>
<seealso cref="M:Info(object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.InfoFormat(System.String,System.Object[])">
<overloads>Log a formatted message string with the <see cref="F:log4
net.Core.Level.Info"/> level.</overloads>
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Info(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.InfoFormat(System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Info(object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.InfoFormat(System.String,System.Object,Syst
em.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Info(object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.InfoFormat(System.String,System.Object,Syst
em.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Info(object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.InfoFormat(System.IFormatProvider,System.St
ring,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Info(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.ILog.Warn(System.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Warn"/> level.</overloads>
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level.
</summary>
<remarks>
<para>
This method first checks if this logger is <c>WARN</c>
enabled by comparing the level of this logger with the
<see cref="F:log4net.Core.Level.Warn"/> level. If this logger is
<c>WARN</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Warn(object,Exception)"/> form instead.
</para>
</remarks>
<param name="message">The message object to log.</param>
<seealso cref="M:Warn(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.Warn(System.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:Warn(object)"/> form for more detailed informat
ion.
</para>
</remarks>
<seealso cref="M:Warn(object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.WarnFormat(System.String,System.Object[])">
<overloads>Log a formatted message string with the <see cref="F:log4
net.Core.Level.Warn"/> level.</overloads>
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Warn(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.WarnFormat(System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Warn(object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.WarnFormat(System.String,System.Object,Syst
em.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Warn(object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.WarnFormat(System.String,System.Object,Syst
em.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Warn(object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.WarnFormat(System.IFormatProvider,System.St
ring,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Warn(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.ILog.Error(System.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Error"/> level.</overloads>
<summary>
Logs a message object with the <see cref="F:log4net.Core.Level.Error
"/> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>ERROR</c>
enabled by comparing the level of this logger with the
<see cref="F:log4net.Core.Level.Error"/> level. If this logger is
<c>ERROR</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Error(object,Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:Error(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.Error(System.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Error"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:Error(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Error(object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.ErrorFormat(System.String,System.Object[])"
>
<overloads>Log a formatted message string with the <see cref="F:log4
net.Core.Level.Error"/> level.</overloads>
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Error(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.ErrorFormat(System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Error(object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,Sys
tem.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Error(object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.ErrorFormat(System.String,System.Object,Sys
tem.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Error(object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.ErrorFormat(System.IFormatProvider,System.S
tring,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Error(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.ILog.Fatal(System.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.</overloads>
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level.
</summary>
<remarks>
<para>
This method first checks if this logger is <c>FATAL</c>
enabled by comparing the level of this logger with the
<see cref="F:log4net.Core.Level.Fatal"/> level. If this logger is
<c>FATAL</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Fatal(object,Exception)"/> form instead.
</para>
</remarks>
<param name="message">The message object to log.</param>
<seealso cref="M:Fatal(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.Fatal(System.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:Fatal(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Fatal(object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.FatalFormat(System.String,System.Object[])"
>
<overloads>Log a formatted message string with the <see cref="F:log4
net.Core.Level.Fatal"/> level.</overloads>
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Fatal(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.FatalFormat(System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Fatal(object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.FatalFormat(System.String,System.Object,Sys
tem.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Fatal(object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.FatalFormat(System.String,System.Object,Sys
tem.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object,Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Fatal(object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.ILog.FatalFormat(System.IFormatProvider,System.S
tring,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:String.Format(string, object[])"/> for details of the s
yntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:Fatal(object,Exception)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="P:log4net.ILog.IsDebugEnabled">
<summary>
Checks if this logger is enabled for the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <see cref="F:log4net.Core.
Level.Debug"/> events, <c>false</c> otherwise.
</value>
<remarks>
<para>
This function is intended to lessen the computational cost of
disabled log debug statements.
</para>
<para> For some ILog interface <c>log</c>, when you write:</para>
<code lang="C#">
log.Debug("This is entry number: " + i );
</code>
<para>
You incur the cost constructing the message, string construction and
concatenation in
this case, regardless of whether the message is logged or not.
</para>
<para>
If you are worried about speed (who isn't), then you should write:
</para>
<code lang="C#">
if (log.IsDebugEnabled)
{
log.Debug("This is entry number: " + i );
}
</code>
<para>
This way you will not incur the cost of parameter
construction if debugging is disabled for <c>log</c>. On
the other hand, if the <c>log</c> is debug enabled, you
will incur the cost of evaluating whether the logger is debug
enabled twice. Once in <see cref="P:log4net.ILog.IsDebugEnabled"/> a
nd once in
the <see cref="M:Debug(object)"/>. This is an insignificant overhea
d
since evaluating a logger takes about 1% of the time it
takes to actually log. This is the preferred style of logging.
</para>
<para>Alternatively if your logger is available statically then the
is debug
enabled state can be stored in a static variable like this:
</para>
<code lang="C#">
private static readonly bool isDebugEnabled = log.IsDebugEnabled;
</code>
<para>
Then when you come to log you can write:
</para>
<code lang="C#">
if (isDebugEnabled)
{
log.Debug("This is entry number: " + i );
}
</code>
<para>
This way the debug enabled state is only queried once
when the class is loaded. Using a <c>private static readonly</c>
variable is the most efficient because it is a run time constant
and can be heavily optimized by the JIT compiler.
</para>
<para>
Of course if you use a static readonly variable to
hold the enabled state of the logger then you cannot
change the enabled state at runtime to vary the logging
that is produced. You have to decide if you need absolute
speed or runtime flexibility.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
<seealso cref="M:DebugFormat(IFormatProvider, string, object[])"/>
</member>
<member name="P:log4net.ILog.IsInfoEnabled">
<summary>
Checks if this logger is enabled for the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <see cref="F:log4net.Core.
Level.Info"/> events, <c>false</c> otherwise.
</value>
<remarks>
For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>
.
</remarks>
<seealso cref="M:Info(object)"/>
<seealso cref="M:InfoFormat(IFormatProvider, string, object[])"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="P:log4net.ILog.IsWarnEnabled">
<summary>
Checks if this logger is enabled for the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <see cref="F:log4net.Core.
Level.Warn"/> events, <c>false</c> otherwise.
</value>
<remarks>
For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>
.
</remarks>
<seealso cref="M:Warn(object)"/>
<seealso cref="M:WarnFormat(IFormatProvider, string, object[])"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="P:log4net.ILog.IsErrorEnabled">
<summary>
Checks if this logger is enabled for the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <see cref="F:log4net.Core.
Level.Error"/> events, <c>false</c> otherwise.
</value>
<remarks>
For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>
.
</remarks>
<seealso cref="M:Error(object)"/>
<seealso cref="M:ErrorFormat(IFormatProvider, string, object[])"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="P:log4net.ILog.IsFatalEnabled">
<summary>
Checks if this logger is enabled for the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <see cref="F:log4net.Core.
Level.Fatal"/> events, <c>false</c> otherwise.
</value>
<remarks>
For more information see <see cref="P:log4net.ILog.IsDebugEnabled"/>
.
</remarks>
<seealso cref="M:Fatal(object)"/>
<seealso cref="M:FatalFormat(IFormatProvider, string, object[])"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Core.LogImpl.#ctor(log4net.Core.ILogger)">
<summary>
Construct a new wrapper for the specified logger.
</summary>
<param name="logger">The logger to wrap.</param>
<remarks>
<para>
Construct a new wrapper for the specified logger.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.ReloadLevels(log4net.Repository.ILo
ggerRepository)">
<summary>
Virtual method called when the configuration of the repository chang
es
</summary>
<param name="repository">the repository holding the levels</param>
<remarks>
<para>
Virtual method called when the configuration of the repository chang
es
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Debug(System.Object)">
<summary>
Logs a message object with the <c>DEBUG</c> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>DEBUG</c>
enabled by comparing the level of this logger with the
<c>DEBUG</c> level. If this logger is
<c>DEBUG</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para>
<b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>

to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Debug(object,Exception)"/> form instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Debug(System.Object,System.Exceptio
n)">
<summary>
Logs a message object with the <c>DEBUG</c> level
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Logs a message object with the <c>DEBUG</c> level including
the stack trace of the <see cref="T:System.Exception"/> <paramref na
me="exception"/> passed
as a parameter.
</para>
<para>
See the <see cref="M:Debug(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Debug(object)"/>
</member>
<member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Ob
ject[])">
<summary>
Logs a formatted message string with the <c>DEBUG</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:DebugFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Ob
ject)">
<summary>
Logs a formatted message string with the <c>DEBUG</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:DebugFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Ob
ject,System.Object)">
<summary>
Logs a formatted message string with the <c>DEBUG</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:DebugFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.DebugFormat(System.String,System.Ob
ject,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <c>DEBUG</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:DebugFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.DebugFormat(System.IFormatProvider,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <c>DEBUG</c> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Debug(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Info(System.Object)">
<summary>
Logs a message object with the <c>INFO</c> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by comparing the level of this logger with the
<c>INFO</c> level. If this logger is
<c>INFO</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para>
<b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>

to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:Info(object,Exception)"/> form instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Info(System.Object,System.Exception
)">
<summary>
Logs a message object with the <c>INFO</c> level.
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Logs a message object with the <c>INFO</c> level including
the stack trace of the <see cref="T:System.Exception"/> <paramref na
me="exception"/>
passed as a parameter.
</para>
<para>
See the <see cref="M:Info(object)"/> form for more detailed informat
ion.
</para>
</remarks>
<seealso cref="M:Info(object)"/>
</member>
<member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Obj
ect[])">
<summary>
Logs a formatted message string with the <c>INFO</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:InfoFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Obj
ect)">
<summary>
Logs a formatted message string with the <c>INFO</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:InfoFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Obj
ect,System.Object)">
<summary>
Logs a formatted message string with the <c>INFO</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:InfoFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.InfoFormat(System.String,System.Obj
ect,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <c>INFO</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:InfoFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.InfoFormat(System.IFormatProvider,S
ystem.String,System.Object[])">
<summary>
Logs a formatted message string with the <c>INFO</c> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Info(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Warn(System.Object)">
<summary>
Logs a message object with the <c>WARN</c> level.
</summary>
<param name="message">the message object to log</param>
<remarks>
<para>
This method first checks if this logger is <c>WARN</c>
enabled by comparing the level of this logger with the
<c>WARN</c> level. If this logger is
<c>WARN</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger and
also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para>
<b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
to this
method will print the name of the <see cref="T:System.Exception"/> b
ut no
stack trace. To print a stack trace use the
<see cref="M:Warn(object,Exception)"/> form instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Warn(System.Object,System.Exception
)">
<summary>
Logs a message object with the <c>WARN</c> level
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Logs a message object with the <c>WARN</c> level including
the stack trace of the <see cref="T:System.Exception"/> <paramref na
me="exception"/>
passed as a parameter.
</para>
<para>
See the <see cref="M:Warn(object)"/> form for more detailed informat
ion.
</para>
</remarks>
<seealso cref="M:Warn(object)"/>
</member>
<member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Obj
ect[])">
<summary>
Logs a formatted message string with the <c>WARN</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:WarnFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Obj
ect)">
<summary>
Logs a formatted message string with the <c>WARN</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:WarnFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Obj
ect,System.Object)">
<summary>
Logs a formatted message string with the <c>WARN</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:WarnFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.WarnFormat(System.String,System.Obj
ect,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <c>WARN</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:WarnFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.WarnFormat(System.IFormatProvider,S
ystem.String,System.Object[])">
<summary>
Logs a formatted message string with the <c>WARN</c> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Warn(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Error(System.Object)">
<summary>
Logs a message object with the <c>ERROR</c> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>ERROR</c>
enabled by comparing the level of this logger with the
<c>ERROR</c> level. If this logger is
<c>ERROR</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger and
also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para>
<b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
to this
method will print the name of the <see cref="T:System.Exception"/> b
ut no
stack trace. To print a stack trace use the
<see cref="M:Error(object,Exception)"/> form instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Error(System.Object,System.Exceptio
n)">
<summary>
Logs a message object with the <c>ERROR</c> level
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Logs a message object with the <c>ERROR</c> level including
the stack trace of the <see cref="T:System.Exception"/> <paramref na
me="exception"/>
passed as a parameter.
</para>
<para>
See the <see cref="M:Error(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Error(object)"/>
</member>
<member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Ob
ject[])">
<summary>
Logs a formatted message string with the <c>ERROR</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:ErrorFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Ob
ject)">
<summary>
Logs a formatted message string with the <c>ERROR</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:ErrorFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Ob
ject,System.Object)">
<summary>
Logs a formatted message string with the <c>ERROR</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:ErrorFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.ErrorFormat(System.String,System.Ob
ject,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <c>ERROR</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:ErrorFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.ErrorFormat(System.IFormatProvider,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <c>ERROR</c> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Error(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Fatal(System.Object)">
<summary>
Logs a message object with the <c>FATAL</c> level.
</summary>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>FATAL</c>
enabled by comparing the level of this logger with the
<c>FATAL</c> level. If this logger is
<c>FATAL</c> enabled, then it converts the message object
(passed as parameter) to a string by invoking the appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger and
also higher in the hierarchy depending on the value of the
additivity flag.
</para>
<para>
<b>WARNING</b> Note that passing an <see cref="T:System.Exception"/>
to this
method will print the name of the <see cref="T:System.Exception"/> b
ut no
stack trace. To print a stack trace use the
<see cref="M:Fatal(object,Exception)"/> form instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.Fatal(System.Object,System.Exceptio
n)">
<summary>
Logs a message object with the <c>FATAL</c> level
</summary>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Logs a message object with the <c>FATAL</c> level including
the stack trace of the <see cref="T:System.Exception"/> <paramref na
me="exception"/>
passed as a parameter.
</para>
<para>
See the <see cref="M:Fatal(object)"/> form for more detailed informa
tion.
</para>
</remarks>
<seealso cref="M:Fatal(object)"/>
</member>
<member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Ob
ject[])">
<summary>
Logs a formatted message string with the <c>FATAL</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:FatalFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Ob
ject)">
<summary>
Logs a formatted message string with the <c>FATAL</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:FatalFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Ob
ject,System.Object)">
<summary>
Logs a formatted message string with the <c>FATAL</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:FatalFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.FatalFormat(System.String,System.Ob
ject,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <c>FATAL</c> level.
</summary>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
The string is formatted using the <see cref="P:System.Globalization.
CultureInfo.InvariantCulture"/>
format provider. To specify a localized provider use the
<see cref="M:FatalFormat(IFormatProvider,string,object[])"/> method.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.FatalFormat(System.IFormatProvider,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <c>FATAL</c> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <see cref="M:String.Format(IForma
tProvider, string, object[])"/> method. See
<c>String.Format</c> for details of the syntax of the format string
and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:Fatal(object)"/>
methods instead.
</para>
</remarks>
</member>
<member name="M:log4net.Core.LogImpl.LoggerRepositoryConfigurationChange
d(System.Object,System.EventArgs)">
<summary>
Event handler for the <see cref="E:log4net.Repository.ILoggerReposit
ory.ConfigurationChanged"/> event
</summary>
<param name="sender">the repository</param>
<param name="e">Empty</param>
</member>
<member name="F:log4net.Core.LogImpl.ThisDeclaringType">
<summary>
The fully qualified name of this declaring type not the type of any
subclass.
</summary>
</member>
<member name="P:log4net.Core.LogImpl.IsDebugEnabled">
<summary>
Checks if this logger is enabled for the <c>DEBUG</c>
level.
</summary>
<value>
<c>true</c> if this logger is enabled for <c>DEBUG</c> events,
<c>false</c> otherwise.
</value>
<remarks>
<para>
This function is intended to lessen the computational cost of
disabled log debug statements.
</para>
<para>
For some <c>log</c> Logger object, when you write:
</para>
<code lang="C#">
log.Debug("This is entry number: " + i );
</code>
<para>
You incur the cost constructing the message, concatenation in
this case, regardless of whether the message is logged or not.
</para>
<para>
If you are worried about speed, then you should write:
</para>
<code lang="C#">
if (log.IsDebugEnabled())
{
log.Debug("This is entry number: " + i );
}
</code>
<para>
This way you will not incur the cost of parameter
construction if debugging is disabled for <c>log</c>. On
the other hand, if the <c>log</c> is debug enabled, you
will incur the cost of evaluating whether the logger is debug
enabled twice. Once in <c>IsDebugEnabled</c> and once in
the <c>Debug</c>. This is an insignificant overhead
since evaluating a logger takes about 1% of the time it
takes to actually log.
</para>
</remarks>
</member>
<member name="P:log4net.Core.LogImpl.IsInfoEnabled">
<summary>
Checks if this logger is enabled for the <c>INFO</c> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <c>INFO</c> events,
<c>false</c> otherwise.
</value>
<remarks>
<para>
See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more inf
ormation and examples
of using this method.
</para>
</remarks>
<seealso cref="P:log4net.Core.LogImpl.IsDebugEnabled"/>
</member>
<member name="P:log4net.Core.LogImpl.IsWarnEnabled">
<summary>
Checks if this logger is enabled for the <c>WARN</c> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <c>WARN</c> events,
<c>false</c> otherwise.
</value>
<remarks>
<para>
See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more inf
ormation and examples
of using this method.
</para>
</remarks>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="P:log4net.Core.LogImpl.IsErrorEnabled">
<summary>
Checks if this logger is enabled for the <c>ERROR</c> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <c>ERROR</c> events,
<c>false</c> otherwise.
</value>
<remarks>
<para>
See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more inf
ormation and examples of using this method.
</para>
</remarks>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="P:log4net.Core.LogImpl.IsFatalEnabled">
<summary>
Checks if this logger is enabled for the <c>FATAL</c> level.
</summary>
<value>
<c>true</c> if this logger is enabled for <c>FATAL</c> events,
<c>false</c> otherwise.
</value>
<remarks>
<para>
See <see cref="P:log4net.Core.LogImpl.IsDebugEnabled"/> for more inf
ormation and examples of using this method.
</para>
</remarks>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="T:log4net.Core.MethodItem">
<summary>
provides method information without actually referencing a System.Re
flection.MethodBase
as that would require that the containing assembly is loaded.
</summary>

</member>
<member name="F:log4net.Core.MethodItem.NA">
<summary>
When location information is not available the constant
<c>NA</c> is returned. Current value of this string
constant is <b>?</b>.
</summary>
</member>
<member name="M:log4net.Core.MethodItem.#ctor">
<summary>
constructs a method item for an unknown method.
</summary>
</member>
<member name="M:log4net.Core.MethodItem.#ctor(System.String)">
<summary>
constructs a method item from the name of the method.
</summary>
<param name="name"></param>
</member>
<member name="M:log4net.Core.MethodItem.#ctor(System.String,System.Strin
g[])">
<summary>
constructs a method item from the name of the method and its paramet
ers.
</summary>
<param name="name"></param>
<param name="parameters"></param>
</member>
<member name="M:log4net.Core.MethodItem.#ctor(System.Reflection.MethodBa
se)">
<summary>
constructs a method item from a method base by determining the metho
d name and its parameters.
</summary>
<param name="methodBase"></param>
</member>
<member name="F:log4net.Core.MethodItem.declaringType">
<summary>
The fully qualified type of the StackFrameItem class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Core.MethodItem.Name">
<summary>
Gets the method name of the caller making the logging
request.
</summary>
<value>
The method name of the caller making the logging
request.
</value>
<remarks>
<para>
Gets the method name of the caller making the logging
request.
</para>
</remarks>
</member>
<member name="P:log4net.Core.MethodItem.Parameters">
<summary>
Gets the method parameters of the caller making
the logging request.
</summary>
<value>
The method parameters of the caller making
the logging request
</value>
<remarks>
<para>
Gets the method parameters of the caller making
the logging request.
</para>
</remarks>
</member>
<member name="T:log4net.Core.SecurityContext">
<summary>
A SecurityContext used by log4net when interacting with protected re
sources
</summary>
<remarks>
<para>
A SecurityContext used by log4net when interacting with protected re
sources
for example with operating system services. This can be used to impe
rsonate
a principal that has been granted privileges on the system resources
.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Core.SecurityContext.Impersonate(System.Object)"
>
<summary>
Impersonate this SecurityContext
</summary>
<param name="state">State supplied by the caller</param>
<returns>An <see cref="T:System.IDisposable"/> instance that will
revoke the impersonation of this SecurityContext, or <c>null</c></re
turns>
<remarks>
<para>
Impersonate this security context. Further calls on the current
thread should now be made in the security context provided
by this object. When the <see cref="T:System.IDisposable"/> result
<see cref="M:System.IDisposable.Dispose"/> method is called the secu
rity
context of the thread should be reverted to the state it was in
before <see cref="M:log4net.Core.SecurityContext.Impersonate(System.
Object)"/> was called.
</para>
</remarks>
</member>
<member name="T:log4net.Core.SecurityContextProvider">
<summary>
The <see cref="T:log4net.Core.SecurityContextProvider"/> providers d
efault <see cref="T:log4net.Core.SecurityContext"/> instances.
</summary>
<remarks>
<para>
A configured component that interacts with potentially protected sys
tem
resources uses a <see cref="T:log4net.Core.SecurityContext"/> to pro
vide the elevated
privileges required. If the <see cref="T:log4net.Core.SecurityContex
t"/> object has
been not been explicitly provided to the component then the componen
t
will request one from this <see cref="T:log4net.Core.SecurityContext
Provider"/>.
</para>
<para>
By default the <see cref="P:log4net.Core.SecurityContextProvider.Def
aultProvider"/> is
an instance of <see cref="T:log4net.Core.SecurityContextProvider"/>
which returns only
<see cref="T:log4net.Util.NullSecurityContext"/> objects. This is a
reasonable default
where the privileges required are not know by the system.
</para>
<para>
This default behavior can be overridden by subclassing the <see cref
="T:log4net.Core.SecurityContextProvider"/>
and overriding the <see cref="M:log4net.Core.SecurityContextProvider
.CreateSecurityContext(System.Object)"/> method to return
the desired <see cref="T:log4net.Core.SecurityContext"/> objects. Th
e default provider
can be replaced by programmatically setting the value of the
<see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/>
property.
</para>
<para>
An alternative is to use the <c>log4net.Config.SecurityContextProvid
erAttribute</c>
This attribute can be applied to an assembly in the same way as the
<c>log4net.Config.XmlConfiguratorAttribute"</c>. The attribute takes
the type to use as the <see cref="T:log4net.Core.SecurityContextProv
ider"/> as an argument.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Core.SecurityContextProvider.s_defaultProvider">
<summary>
The default provider
</summary>
</member>
<member name="M:log4net.Core.SecurityContextProvider.#ctor">
<summary>
Protected default constructor to allow subclassing
</summary>
<remarks>
<para>
Protected default constructor to allow subclassing
</para>
</remarks>
</member>
<member name="M:log4net.Core.SecurityContextProvider.CreateSecurityConte
xt(System.Object)">
<summary>
Create a SecurityContext for a consumer
</summary>
<param name="consumer">The consumer requesting the SecurityContext</
param>
<returns>An impersonation context</returns>
<remarks>
<para>
The default implementation is to return a <see cref="T:log4net.Util.
NullSecurityContext"/>.
</para>
<para>
Subclasses should override this method to provide their own
behavior.
</para>
</remarks>
</member>
<member name="P:log4net.Core.SecurityContextProvider.DefaultProvider">
<summary>
Gets or sets the default SecurityContextProvider
</summary>
<value>
The default SecurityContextProvider
</value>
<remarks>
<para>
The default provider is used by configured components that
require a <see cref="T:log4net.Core.SecurityContext"/> and have not
had one
given to them.
</para>
<para>
By default this is an instance of <see cref="T:log4net.Core.Security
ContextProvider"/>
that returns <see cref="T:log4net.Util.NullSecurityContext"/> object
s.
</para>
<para>
The default provider can be set programmatically by setting
the value of this property to a sub class of <see cref="T:log4net.Co
re.SecurityContextProvider"/>
that has the desired behavior.
</para>
</remarks>
</member>
<member name="T:log4net.Core.StackFrameItem">
<summary>
provides stack frame information without actually referencing a Syst
em.Diagnostics.StackFrame
as that would require that the containing assembly is loaded.
</summary>

</member>
<member name="F:log4net.Core.StackFrameItem.NA">
<summary>
When location information is not available the constant
<c>NA</c> is returned. Current value of this string
constant is <b>?</b>.
</summary>
</member>
<member name="M:log4net.Core.StackFrameItem.#ctor(System.Diagnostics.Sta
ckFrame)">
<summary>
returns a stack frame item from a stack frame. This
</summary>
<param name="frame"></param>
<returns></returns>
</member>
<member name="F:log4net.Core.StackFrameItem.declaringType">
<summary>
The fully qualified type of the StackFrameItem class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Core.StackFrameItem.ClassName">
<summary>
Gets the fully qualified class name of the caller making the logging

request.
</summary>
<value>
The fully qualified class name of the caller making the logging
request.
</value>
<remarks>
<para>
Gets the fully qualified class name of the caller making the logging

request.
</para>
</remarks>
</member>
<member name="P:log4net.Core.StackFrameItem.FileName">
<summary>
Gets the file name of the caller.
</summary>
<value>
The file name of the caller.
</value>
<remarks>
<para>
Gets the file name of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.StackFrameItem.LineNumber">
<summary>
Gets the line number of the caller.
</summary>
<value>
The line number of the caller.
</value>
<remarks>
<para>
Gets the line number of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.StackFrameItem.Method">
<summary>
Gets the method name of the caller.
</summary>
<value>
The method name of the caller.
</value>
<remarks>
<para>
Gets the method name of the caller.
</para>
</remarks>
</member>
<member name="P:log4net.Core.StackFrameItem.FullInfo">
<summary>
Gets all available caller information
</summary>
<value>
All available caller information, in the format
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
</value>
<remarks>
<para>
Gets all available caller information, in the format
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
</para>
</remarks>
</member>
<member name="T:log4net.Core.TimeEvaluator">
<summary>
An evaluator that triggers after specified number of seconds.
</summary>
<remarks>
<para>
This evaluator will trigger if the specified time period
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check.
</para>
</remarks>
<author>Robert Sevcik</author>
</member>
<member name="F:log4net.Core.TimeEvaluator.DEFAULT_INTERVAL">
<summary>
The default time threshold for triggering in seconds. Zero means it
won't trigger at all.
</summary>
</member>
<member name="F:log4net.Core.TimeEvaluator.m_interval">
<summary>
The time threshold for triggering in seconds. Zero means it won't tr
igger at all.
</summary>
</member>
<member name="F:log4net.Core.TimeEvaluator.m_lasttime">
<summary>
The time of last check. This gets updated when the object is created
and when the evaluator triggers.
</summary>
</member>
<member name="M:log4net.Core.TimeEvaluator.#ctor">
<summary>
Create a new evaluator using the <see cref="F:log4net.Core.TimeEvalu
ator.DEFAULT_INTERVAL"/> time threshold in seconds.
</summary>
<remarks>
<para>
Create a new evaluator using the <see cref="F:log4net.Core.TimeEvalu
ator.DEFAULT_INTERVAL"/> time threshold in seconds.
</para>
<para>
This evaluator will trigger if the specified time period
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check.
</para>
</remarks>
</member>
<member name="M:log4net.Core.TimeEvaluator.#ctor(System.Int32)">
<summary>
Create a new evaluator using the specified time threshold in seconds
.
</summary>
<param name="interval">
The time threshold in seconds to trigger after.
Zero means it won't trigger at all.
</param>
<remarks>
<para>
Create a new evaluator using the specified time threshold in seconds
.
</para>
<para>
This evaluator will trigger if the specified time period
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check.
</para>
</remarks>
</member>
<member name="M:log4net.Core.TimeEvaluator.IsTriggeringEvent(log4net.Cor
e.LoggingEvent)">
<summary>
Is this <paramref name="loggingEvent"/> the triggering event?
</summary>
<param name="loggingEvent">The event to check</param>
<returns>This method returns <c>true</c>, if the specified time peri
od
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check..
Otherwise it returns <c>false</c></returns>
<remarks>
<para>
This evaluator will trigger if the specified time period
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check.
</para>
</remarks>
</member>
<member name="P:log4net.Core.TimeEvaluator.Interval">
<summary>
The time threshold in seconds to trigger after
</summary>
<value>
The time threshold in seconds to trigger after.
Zero means it won't trigger at all.
</value>
<remarks>
<para>
This evaluator will trigger if the specified time period
<see cref="P:log4net.Core.TimeEvaluator.Interval"/> has passed since
last check.
</para>
</remarks>
</member>
<member name="T:log4net.Core.WrapperCreationHandler">
<summary>
Delegate used to handle creation of new wrappers.
</summary>
<param name="logger">The logger to wrap in a wrapper.</param>
<remarks>
<para>
Delegate used to handle creation of new wrappers. This delegate
is called from the <see cref="M:log4net.Core.WrapperMap.CreateNewWra
pperObject(log4net.Core.ILogger)"/>
method to construct the wrapper for the specified logger.
</para>
<para>
The delegate to use is supplied to the <see cref="T:log4net.Core.Wra
pperMap"/>
constructor.
</para>
</remarks>
</member>
<member name="T:log4net.Core.WrapperMap">
<summary>
Maps between logger objects and wrapper objects.
</summary>
<remarks>
<para>
This class maintains a mapping between <see cref="T:log4net.Core.ILo
gger"/> objects and
<see cref="T:log4net.Core.ILoggerWrapper"/> objects. Use the <see cr
ef="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)"/> method to
lookup the <see cref="T:log4net.Core.ILoggerWrapper"/> for the speci
fied <see cref="T:log4net.Core.ILogger"/>.
</para>
<para>
New wrapper instances are created by the <see cref="M:log4net.Core.W
rapperMap.CreateNewWrapperObject(log4net.Core.ILogger)"/>
method. The default behavior is for this method to delegate construc
tion
of the wrapper to the <see cref="T:log4net.Core.WrapperCreationHandl
er"/> delegate supplied
to the constructor. This allows specialization of the behavior witho
ut
requiring subclassing of this type.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Core.WrapperMap.#ctor(log4net.Core.WrapperCreati
onHandler)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Core.WrapperM
ap"/>
</summary>
<param name="createWrapperHandler">The handler to use to create the
wrapper objects.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Core.WrapperM
ap"/> class with
the specified handler to create the wrapper objects.
</para>
</remarks>
</member>
<member name="M:log4net.Core.WrapperMap.GetWrapper(log4net.Core.ILogger)
">
<summary>
Gets the wrapper object for the specified logger.
</summary>
<returns>The wrapper object for the specified logger</returns>
<remarks>
<para>
If the logger is null then the corresponding wrapper is null.
</para>
<para>
Looks up the wrapper it it has previously been requested and
returns it. If the wrapper has never been requested before then
the <see cref="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4
net.Core.ILogger)"/> virtual method is
called.
</para>
</remarks>
</member>
<member name="M:log4net.Core.WrapperMap.CreateNewWrapperObject(log4net.C
ore.ILogger)">
<summary>
Creates the wrapper object for the specified logger.
</summary>
<param name="logger">The logger to wrap in a wrapper.</param>
<returns>The wrapper object for the logger.</returns>
<remarks>
<para>
This implementation uses the <see cref="T:log4net.Core.WrapperCreati
onHandler"/>
passed to the constructor to create the wrapper. This method
can be overridden in a subclass.
</para>
</remarks>
</member>
<member name="M:log4net.Core.WrapperMap.RepositoryShutdown(log4net.Repos
itory.ILoggerRepository)">
<summary>
Called when a monitored repository shutdown event is received.
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that is shutting down</param>
<remarks>
<para>
This method is called when a <see cref="T:log4net.Repository.ILogger
Repository"/> that this
<see cref="T:log4net.Core.WrapperMap"/> is holding loggers for has s
ignaled its shutdown
event <see cref="E:log4net.Repository.ILoggerRepository.ShutdownEven
t"/>. The default
behavior of this method is to release the references to the loggers
and their wrappers generated for this repository.
</para>
</remarks>
</member>
<member name="M:log4net.Core.WrapperMap.ILoggerRepository_Shutdown(Syste
m.Object,System.EventArgs)">
<summary>
Event handler for repository shutdown event.
</summary>
<param name="sender">The sender of the event.</param>
<param name="e">The event args.</param>
</member>
<member name="F:log4net.Core.WrapperMap.m_repositories">
<summary>
Map of logger repositories to hashtables of ILogger to ILoggerWrappe
r mappings
</summary>
</member>
<member name="F:log4net.Core.WrapperMap.m_createWrapperHandler">
<summary>
The handler to use to create the extension wrapper objects.
</summary>
</member>
<member name="F:log4net.Core.WrapperMap.m_shutdownHandler">
<summary>
Internal reference to the delegate used to register for repository s
hutdown events.
</summary>
</member>
<member name="P:log4net.Core.WrapperMap.Repositories">
<summary>
Gets the map of logger repositories.
</summary>
<value>
Map of logger repositories.
</value>
<remarks>
<para>
Gets the hashtable that is keyed on <see cref="T:log4net.Repository.
ILoggerRepository"/>. The
values are hashtables keyed on <see cref="T:log4net.Core.ILogger"/>
with the
value being the corresponding <see cref="T:log4net.Core.ILoggerWrapp
er"/>.
</para>
</remarks>
</member>
<member name="T:log4net.DateFormatter.AbsoluteTimeDateFormatter">
<summary>
Formats a <see cref="T:System.DateTime"/> as <c>"HH:mm:ss,fff"</c>.
</summary>
<remarks>
<para>
Formats a <see cref="T:System.DateTime"/> in the format <c>"HH:mm:ss
,fff"</c> for example, <c>"15:49:37,459"</c>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.DateFormatter.IDateFormatter">
<summary>
Render a <see cref="T:System.DateTime"/> as a string.
</summary>
<remarks>
<para>
Interface to abstract the rendering of a <see cref="T:System.DateTim
e"/>
instance into a string.
</para>
<para>
The <see cref="M:log4net.DateFormatter.IDateFormatter.FormatDate(Sys
tem.DateTime,System.IO.TextWriter)"/> method is used to render the
date to a text writer.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.DateFormatter.IDateFormatter.FormatDate(System.D
ateTime,System.IO.TextWriter)">
<summary>
Formats the specified date as a string.
</summary>
<param name="dateToFormat">The date to format.</param>
<param name="writer">The writer to write to.</param>
<remarks>
<para>
Format the <see cref="T:System.DateTime"/> as a string and write it
to the <see cref="T:System.IO.TextWriter"/> provided.
</para>
</remarks>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.Absolute
TimeDateFormat">
<summary>
String constant used to specify AbsoluteTimeDateFormat in layouts. C
urrent value is <b>ABSOLUTE</b>.
</summary>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.DateAndT
imeDateFormat">
<summary>
String constant used to specify DateTimeDateFormat in layouts. Curr
ent value is <b>DATE</b>.
</summary>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.Iso8601T
imeDateFormat">
<summary>
String constant used to specify ISO8601DateFormat in layouts. Curren
t value is <b>ISO8601</b>.
</summary>
</member>
<member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDa
teWithoutMillis(System.DateTime,System.Text.StringBuilder)">
<summary>
Renders the date into a string. Format is <c>"HH:mm:ss"</c>.
</summary>
<param name="dateToFormat">The date to render into a string.</param>
<param name="buffer">The string builder to write to.</param>
<remarks>
<para>
Subclasses should override this method to render the date
into a string using a precision up to the second. This method
will be called at most once per second and the result will be
reused if it is needed again during the same second.
</para>
</remarks>
</member>
<member name="M:log4net.DateFormatter.AbsoluteTimeDateFormatter.FormatDa
te(System.DateTime,System.IO.TextWriter)">
<summary>
Renders the date into a string. Format is "HH:mm:ss,fff".
</summary>
<param name="dateToFormat">The date to render into a string.</param>
<param name="writer">The writer to write to.</param>
<remarks>
<para>
Uses the <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormatte
r.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> method t
o generate the
time string up to the seconds and then appends the current
milliseconds. The results from <see cref="M:log4net.DateFormatter.Ab
soluteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.Stri
ngBuilder)"/> are
cached and <see cref="M:log4net.DateFormatter.AbsoluteTimeDateFormat
ter.FormatDateWithoutMillis(System.DateTime,System.Text.StringBuilder)"/> is cal
led at most once
per second.
</para>
<para>
Sub classes should override <see cref="M:log4net.DateFormatter.Absol
uteTimeDateFormatter.FormatDateWithoutMillis(System.DateTime,System.Text.StringB
uilder)"/>
rather than <see cref="M:log4net.DateFormatter.AbsoluteTimeDateForma
tter.FormatDate(System.DateTime,System.IO.TextWriter)"/>.
</para>
</remarks>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTi
meToTheSecond">
<summary>
Last stored time with precision up to the second.
</summary>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTi
meBuf">
<summary>
Last stored time with precision up to the second, formatted
as a string.
</summary>
</member>
<member name="F:log4net.DateFormatter.AbsoluteTimeDateFormatter.s_lastTi
meStrings">
<summary>
Last stored time with precision up to the second, formatted
as a string.
</summary>
</member>
<member name="T:log4net.DateFormatter.DateTimeDateFormatter">
<summary>
Formats a <see cref="T:System.DateTime"/> as <c>"dd MMM yyyy HH:mm:s
s,fff"</c>
</summary>
<remarks>
<para>
Formats a <see cref="T:System.DateTime"/> in the format
<c>"dd MMM yyyy HH:mm:ss,fff"</c> for example,
<c>"06 Nov 1994 15:49:37,459"</c>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Angelika Schnagl</author>
</member>
<member name="M:log4net.DateFormatter.DateTimeDateFormatter.#ctor">
<summary>
Default constructor.
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.DateFormatter
.DateTimeDateFormatter"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.DateFormatter.DateTimeDateFormatter.FormatDateWi
thoutMillis(System.DateTime,System.Text.StringBuilder)">
<summary>
Formats the date without the milliseconds part
</summary>
<param name="dateToFormat">The date to format.</param>
<param name="buffer">The string builder to write to.</param>
<remarks>
<para>
Formats a DateTime in the format <c>"dd MMM yyyy HH:mm:ss"</c>
for example, <c>"06 Nov 1994 15:49:37"</c>.
</para>
<para>
The base class will append the <c>",fff"</c> milliseconds section.
This method will only be called at most once per second.
</para>
</remarks>
</member>
<member name="F:log4net.DateFormatter.DateTimeDateFormatter.m_dateTimeFo
rmatInfo">
<summary>
The format info for the invariant culture.
</summary>
</member>
<member name="T:log4net.DateFormatter.Iso8601DateFormatter">
<summary>
Formats the <see cref="T:System.DateTime"/> as <c>"yyyy-MM-dd HH:mm:
ss,fff"</c>.
</summary>
<remarks>
<para>
Formats the <see cref="T:System.DateTime"/> specified as a string: <
c>"yyyy-MM-dd HH:mm:ss,fff"</c>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.DateFormatter.Iso8601DateFormatter.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.DateFormatter
.Iso8601DateFormatter"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.DateFormatter.Iso8601DateFormatter.FormatDateWit
houtMillis(System.DateTime,System.Text.StringBuilder)">
<summary>
Formats the date without the milliseconds part
</summary>
<param name="dateToFormat">The date to format.</param>
<param name="buffer">The string builder to write to.</param>
<remarks>
<para>
Formats the date specified as a string: <c>"yyyy-MM-dd HH:mm:ss"</c>
.
</para>
<para>
The base class will append the <c>",fff"</c> milliseconds section.
This method will only be called at most once per second.
</para>
</remarks>
</member>
<member name="T:log4net.DateFormatter.SimpleDateFormatter">
<summary>
Formats the <see cref="T:System.DateTime"/> using the <see cref="M:D
ateTime.ToString(string, IFormatProvider)"/> method.
</summary>
<remarks>
<para>
Formats the <see cref="T:System.DateTime"/> using the <see cref="T:S
ystem.DateTime"/> <see cref="M:DateTime.ToString(string, IFormatProvider)"/> met
hod.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.DateFormatter.SimpleDateFormatter.#ctor(System.S
tring)">
<summary>
Constructor
</summary>
<param name="format">The format string.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.DateFormatter
.SimpleDateFormatter"/> class
with the specified format string.
</para>
<para>
The format string must be compatible with the options
that can be supplied to <see cref="M:DateTime.ToString(string, IForm
atProvider)"/>.
</para>
</remarks>
</member>
<member name="M:log4net.DateFormatter.SimpleDateFormatter.FormatDate(Sys
tem.DateTime,System.IO.TextWriter)">
<summary>
Formats the date using <see cref="M:DateTime.ToString(string, IForma
tProvider)"/>.
</summary>
<param name="dateToFormat">The date to convert to a string.</param>
<param name="writer">The writer to write to.</param>
<remarks>
<para>
Uses the date format string supplied to the constructor to call
the <see cref="M:DateTime.ToString(string, IFormatProvider)"/> metho
d to format the date.
</para>
</remarks>
</member>
<member name="F:log4net.DateFormatter.SimpleDateFormatter.m_formatString
">
<summary>
The format string used to format the <see cref="T:System.DateTime"/>
.
</summary>
<remarks>
<para>
The format string must be compatible with the options
that can be supplied to <see cref="M:DateTime.ToString(string, IForm
atProvider)"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Filter.DenyAllFilter">
<summary>
This filter drops all <see cref="T:log4net.Core.LoggingEvent"/>.
</summary>
<remarks>
<para>
You can add this filter to the end of a filter chain to
switch from the default "accept all unless instructed otherwise"
filtering behavior to a "deny all unless instructed otherwise"
behavior.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Filter.FilterSkeleton">
<summary>
Subclass this type to implement customized logging event filtering
</summary>
<remarks>
<para>
Users should extend this class to implement customized logging
event filtering. Note that <see cref="T:log4net.Repository.Hierarchy
.Logger"/> and
<see cref="T:log4net.Appender.AppenderSkeleton"/>, the parent class
of all standard
appenders, have built-in filtering rules. It is suggested that you
first use and understand the built-in rules before rushing to write
your own custom filters.
</para>
<para>
This abstract class assumes and also imposes that filters be
organized in a linear chain. The <see cref="M:log4net.Filter.FilterS
keleton.Decide(log4net.Core.LoggingEvent)"/>
method of each filter is called sequentially, in the order of their
addition to the chain.
</para>
<para>
The <see cref="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.L
oggingEvent)"/> method must return one
of the integer constants <see cref="F:log4net.Filter.FilterDecision.
Deny"/>,
<see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="
F:log4net.Filter.FilterDecision.Accept"/>.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is r
eturned, then the log event is dropped
immediately without consulting with the remaining filters.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> i
s returned, then the next filter
in the chain is consulted. If there are no more filters in the
chain, then the log event is logged. Thus, in the presence of no
filters, the default behavior is to log all logging events.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is
returned, then the log
event is logged without consulting the remaining filters.
</para>
<para>
The philosophy of log4net filters is largely inspired from the
Linux ipchains.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Filter.IFilter">
<summary>
Implement this interface to provide customized logging event filteri
ng
</summary>
<remarks>
<para>
Users should implement this interface to implement customized loggin
g
event filtering. Note that <see cref="T:log4net.Repository.Hierarchy
.Logger"/> and
<see cref="T:log4net.Appender.AppenderSkeleton"/>, the parent class
of all standard
appenders, have built-in filtering rules. It is suggested that you
first use and understand the built-in rules before rushing to write
your own custom filters.
</para>
<para>
This abstract class assumes and also imposes that filters be
organized in a linear chain. The <see cref="M:log4net.Filter.IFilter
.Decide(log4net.Core.LoggingEvent)"/>
method of each filter is called sequentially, in the order of their
addition to the chain.
</para>
<para>
The <see cref="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingE
vent)"/> method must return one
of the integer constants <see cref="F:log4net.Filter.FilterDecision.
Deny"/>,
<see cref="F:log4net.Filter.FilterDecision.Neutral"/> or <see cref="
F:log4net.Filter.FilterDecision.Accept"/>.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Deny"/> is r
eturned, then the log event is dropped
immediately without consulting with the remaining filters.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Neutral"/> i
s returned, then the next filter
in the chain is consulted. If there are no more filters in the
chain, then the log event is logged. Thus, in the presence of no
filters, the default behavior is to log all logging events.
</para>
<para>
If the value <see cref="F:log4net.Filter.FilterDecision.Accept"/> is
returned, then the log
event is logged without consulting the remaining filters.
</para>
<para>
The philosophy of log4net filters is largely inspired from the
Linux ipchains.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Filter.IFilter.Decide(log4net.Core.LoggingEvent)
">
<summary>
Decide if the logging event should be logged through an appender.
</summary>
<param name="loggingEvent">The LoggingEvent to decide upon</param>
<returns>The decision of the filter</returns>
<remarks>
<para>
If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/
>, then the event will be
dropped. If the decision is <see cref="F:log4net.Filter.FilterDecisi
on.Neutral"/>, then the next
filter, if any, will be invoked. If the decision is <see cref="F:log
4net.Filter.FilterDecision.Accept"/> then
the event will be logged without consulting with other filters in
the chain.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.IFilter.Next">
<summary>
Property to get and set the next filter
</summary>
<value>
The next filter in the chain
</value>
<remarks>
<para>
Filters are typically composed into chains. This property allows the
next filter in
the chain to be accessed.
</para>
</remarks>
</member>
<member name="F:log4net.Filter.FilterSkeleton.m_next">
<summary>
Points to the next filter in the filter chain.
</summary>
<remarks>
<para>
See <see cref="P:log4net.Filter.FilterSkeleton.Next"/> for more info
rmation.
</para>
</remarks>
</member>
<member name="M:log4net.Filter.FilterSkeleton.ActivateOptions">
<summary>
Initialize the filter with the options set
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Filter.FilterSkeleton.Ac
tivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Filter.FilterSkeleton.ActivateO
ptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Filter.FilterSkeleton.ActivateOptions"/> must b
e called again.
</para>
<para>
Typically filter's options become active immediately on set,
however this method must still be called.
</para>
</remarks>
</member>
<member name="M:log4net.Filter.FilterSkeleton.Decide(log4net.Core.Loggin
gEvent)">
<summary>
Decide if the <see cref="T:log4net.Core.LoggingEvent"/> should be lo
gged through an appender.
</summary>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> to decide upon</param>
<returns>The decision of the filter</returns>
<remarks>
<para>
If the decision is <see cref="F:log4net.Filter.FilterDecision.Deny"/
>, then the event will be
dropped. If the decision is <see cref="F:log4net.Filter.FilterDecisi
on.Neutral"/>, then the next
filter, if any, will be invoked. If the decision is <see cref="F:log
4net.Filter.FilterDecision.Accept"/> then
the event will be logged without consulting with other filters in
the chain.
</para>
<para>
This method is marked <c>abstract</c> and must be implemented
in a subclass.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.FilterSkeleton.Next">
<summary>
Property to get and set the next filter
</summary>
<value>
The next filter in the chain
</value>
<remarks>
<para>
Filters are typically composed into chains. This property allows the
next filter in
the chain to be accessed.
</para>
</remarks>
</member>
<member name="M:log4net.Filter.DenyAllFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.DenyAllFilter.Decide(log4net.Core.Logging
Event)">
<summary>
Always returns the integer constant <see cref="F:log4net.Filter.Filt
erDecision.Deny"/>
</summary>
<param name="loggingEvent">the LoggingEvent to filter</param>
<returns>Always returns <see cref="F:log4net.Filter.FilterDecision.D
eny"/></returns>
<remarks>
<para>
Ignores the event being logged and just returns
<see cref="F:log4net.Filter.FilterDecision.Deny"/>. This can be used
to change the default filter
chain behavior from <see cref="F:log4net.Filter.FilterDecision.Accep
t"/> to <see cref="F:log4net.Filter.FilterDecision.Deny"/>. This filter
should only be used as the last filter in the chain
as any further filters will be ignored!
</para>
</remarks>
</member>
<member name="T:log4net.Filter.FilterDecision">
<summary>
The return result from <see cref="M:log4net.Filter.IFilter.Decide(lo
g4net.Core.LoggingEvent)"/>
</summary>
<remarks>
<para>
The return result from <see cref="M:log4net.Filter.IFilter.Decide(lo
g4net.Core.LoggingEvent)"/>
</para>
</remarks>
</member>
<member name="F:log4net.Filter.FilterDecision.Deny">
<summary>
The log event must be dropped immediately without
consulting with the remaining filters, if any, in the chain.
</summary>
</member>
<member name="F:log4net.Filter.FilterDecision.Neutral">
<summary>
This filter is neutral with respect to the log event.
The remaining filters, if any, should be consulted for a final decis
ion.
</summary>
</member>
<member name="F:log4net.Filter.FilterDecision.Accept">
<summary>
The log event must be logged immediately without
consulting with the remaining filters, if any, in the chain.
</summary>
</member>
<member name="T:log4net.Filter.LevelMatchFilter">
<summary>
This is a very simple filter based on <see cref="T:log4net.Core.Leve
l"/> matching.
</summary>
<remarks>
<para>
The filter admits two options <see cref="P:log4net.Filter.LevelMatch
Filter.LevelToMatch"/> and
<see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/>. If th
ere is an exact match between the value
of the <see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/>
option and the <see cref="T:log4net.Core.Level"/> of the
<see cref="T:log4net.Core.LoggingEvent"/>, then the <see cref="M:log
4net.Filter.LevelMatchFilter.Decide(log4net.Core.LoggingEvent)"/> method returns
<see cref="F:log4net.Filter.FilterDecision.Accept"/> in
case the <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"
/> option value is set
to <c>true</c>, if it is <c>false</c> then
<see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned. If t
he <see cref="T:log4net.Core.Level"/> does not match then
the result will be <see cref="F:log4net.Filter.FilterDecision.Neutra
l"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Filter.LevelMatchFilter.m_acceptOnMatch">
<summary>
flag to indicate if the filter should <see cref="F:log4net.Filter.Fi
lterDecision.Accept"/> on a match
</summary>
</member>
<member name="F:log4net.Filter.LevelMatchFilter.m_levelToMatch">
<summary>
the <see cref="T:log4net.Core.Level"/> to match against
</summary>
</member>
<member name="M:log4net.Filter.LevelMatchFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.LevelMatchFilter.Decide(log4net.Core.Logg
ingEvent)">
<summary>
Tests if the <see cref="T:log4net.Core.Level"/> of the logging event
matches that of the filter
</summary>
<param name="loggingEvent">the event to filter</param>
<returns>see remarks</returns>
<remarks>
<para>
If the <see cref="T:log4net.Core.Level"/> of the event matches the l
evel of the
filter then the result of the function depends on the
value of <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"
/>. If it is true then
the function will return <see cref="F:log4net.Filter.FilterDecision.
Accept"/>, it it is false then it
will return <see cref="F:log4net.Filter.FilterDecision.Deny"/>. If t
he <see cref="T:log4net.Core.Level"/> does not match then
the result will be <see cref="F:log4net.Filter.FilterDecision.Neutra
l"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch">
<summary>
<see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <
see cref="P:log4net.Filter.LevelMatchFilter.LevelToMatch"/>
</summary>
<remarks>
<para>
The <see cref="P:log4net.Filter.LevelMatchFilter.AcceptOnMatch"/> pr
operty is a flag that determines
the behavior when a matching <see cref="T:log4net.Core.Level"/> is f
ound. If the
flag is set to true then the filter will <see cref="F:log4net.Filter
.FilterDecision.Accept"/> the
logging event, otherwise it will <see cref="F:log4net.Filter.FilterD
ecision.Deny"/> the event.
</para>
<para>
The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.Filte
rDecision.Accept"/> the event.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LevelMatchFilter.LevelToMatch">
<summary>
The <see cref="T:log4net.Core.Level"/> that the filter will match
</summary>
<remarks>
<para>
The level that this filter will attempt to match against the
<see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found
then
the result depends on the value of <see cref="P:log4net.Filter.Level
MatchFilter.AcceptOnMatch"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Filter.LevelRangeFilter">
<summary>
This is a simple filter based on <see cref="T:log4net.Core.Level"/>
matching.
</summary>
<remarks>
<para>
The filter admits three options <see cref="P:log4net.Filter.LevelRan
geFilter.LevelMin"/> and <see cref="P:log4net.Filter.LevelRangeFilter.LevelMax"/
>
that determine the range of priorities that are matched, and
<see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>. If th
ere is a match between the range
of priorities and the <see cref="T:log4net.Core.Level"/> of the <see
cref="T:log4net.Core.LoggingEvent"/>, then the
<see cref="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.Log
gingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"/
> in case the <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/>
option value is set to <c>true</c>, if it is <c>false</c>
then <see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
If there is no match, <see cref="F:log4net.Filter.FilterDecision.Deny"/> is ret
urned.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Filter.LevelRangeFilter.m_acceptOnMatch">
<summary>
Flag to indicate the behavior when matching a <see cref="T:log4net.C
ore.Level"/>
</summary>
</member>
<member name="F:log4net.Filter.LevelRangeFilter.m_levelMin">
<summary>
the minimum <see cref="T:log4net.Core.Level"/> value to match
</summary>
</member>
<member name="F:log4net.Filter.LevelRangeFilter.m_levelMax">
<summary>
the maximum <see cref="T:log4net.Core.Level"/> value to match
</summary>
</member>
<member name="M:log4net.Filter.LevelRangeFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.LevelRangeFilter.Decide(log4net.Core.Logg
ingEvent)">
<summary>
Check if the event should be logged.
</summary>
<param name="loggingEvent">the logging event to check</param>
<returns>see remarks</returns>
<remarks>
<para>
If the <see cref="T:log4net.Core.Level"/> of the logging event is ou
tside the range
matched by this filter then <see cref="F:log4net.Filter.FilterDecisi
on.Deny"/>
is returned. If the <see cref="T:log4net.Core.Level"/> is matched th
en the value of
<see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> is che
cked. If it is true then
<see cref="F:log4net.Filter.FilterDecision.Accept"/> is returned, ot
herwise
<see cref="F:log4net.Filter.FilterDecision.Neutral"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch">
<summary>
<see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <
see cref="P:log4net.Filter.LevelRangeFilter.LevelMin"/> and <see cref="P:log4net
.Filter.LevelRangeFilter.LevelMax"/>
</summary>
<remarks>
<para>
The <see cref="P:log4net.Filter.LevelRangeFilter.AcceptOnMatch"/> pr
operty is a flag that determines
the behavior when a matching <see cref="T:log4net.Core.Level"/> is f
ound. If the
flag is set to true then the filter will <see cref="F:log4net.Filter
.FilterDecision.Accept"/> the
logging event, otherwise it will <see cref="F:log4net.Filter.FilterD
ecision.Neutral"/> the event.
</para>
<para>
The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.Filte
rDecision.Accept"/> the event.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LevelRangeFilter.LevelMin">
<summary>
Set the minimum matched <see cref="T:log4net.Core.Level"/>
</summary>
<remarks>
<para>
The minimum level that this filter will attempt to match against the

<see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found
then
the result depends on the value of <see cref="P:log4net.Filter.Level
RangeFilter.AcceptOnMatch"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LevelRangeFilter.LevelMax">
<summary>
Sets the maximum matched <see cref="T:log4net.Core.Level"/>
</summary>
<remarks>
<para>
The maximum level that this filter will attempt to match against the

<see cref="T:log4net.Core.LoggingEvent"/> level. If a match is found
then
the result depends on the value of <see cref="P:log4net.Filter.Level
RangeFilter.AcceptOnMatch"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Filter.LoggerMatchFilter">
<summary>
Simple filter to match a string in the event's logger name.
</summary>
<remarks>
<para>
The works very similar to the <see cref="T:log4net.Filter.LevelMatch
Filter"/>. It admits two
options <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"
/> and <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/>. If the
<see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of the <see cre
f="T:log4net.Core.LoggingEvent"/> starts
with the value of the <see cref="P:log4net.Filter.LoggerMatchFilter.
LoggerToMatch"/> option, then the
<see cref="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.Lo
ggingEvent)"/> method returns <see cref="F:log4net.Filter.FilterDecision.Accept"
/> in
case the <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch
"/> option value is set to <c>true</c>,
if it is <c>false</c> then <see cref="F:log4net.Filter.FilterDecisio
n.Deny"/> is returned.
</para>
</remarks>
<author>Daniel Cazzulino</author>
</member>
<member name="F:log4net.Filter.LoggerMatchFilter.m_acceptOnMatch">
<summary>
Flag to indicate the behavior when we have a match
</summary>
</member>
<member name="F:log4net.Filter.LoggerMatchFilter.m_loggerToMatch">
<summary>
The logger name string to substring match against the event
</summary>
</member>
<member name="M:log4net.Filter.LoggerMatchFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.LoggerMatchFilter.Decide(log4net.Core.Log
gingEvent)">
<summary>
Check if this filter should allow the event to be logged
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>see remarks</returns>
<remarks>
<para>
The rendered message is matched against the <see cref="P:log4net.Fil
ter.LoggerMatchFilter.LoggerToMatch"/>.
If the <see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/
> equals the beginning of
the incoming <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> (<
see cref="M:String.StartsWith(string)"/>)
then a match will have occurred. If no match occurs
this function will return <see cref="F:log4net.Filter.FilterDecision
.Neutral"/>
allowing other filters to check the event. If a match occurs then
the value of <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnM
atch"/> is checked. If it is
true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is re
turned otherwise
<see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch">
<summary>
<see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <
see cref="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch"/>
</summary>
<remarks>
<para>
The <see cref="P:log4net.Filter.LoggerMatchFilter.AcceptOnMatch"/> p
roperty is a flag that determines
the behavior when a matching <see cref="T:log4net.Core.Level"/> is f
ound. If the
flag is set to true then the filter will <see cref="F:log4net.Filter
.FilterDecision.Accept"/> the
logging event, otherwise it will <see cref="F:log4net.Filter.FilterD
ecision.Deny"/> the event.
</para>
<para>
The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.Filte
rDecision.Accept"/> the event.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.LoggerMatchFilter.LoggerToMatch">
<summary>
The <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> that the fi
lter will match
</summary>
<remarks>
<para>
This filter will attempt to match this value against logger name in
the following way. The match will be done against the beginning of t
he
logger name (using <see cref="M:String.StartsWith(string)"/>). The m
atch is
case sensitive. If a match is found then
the result depends on the value of <see cref="P:log4net.Filter.Logge
rMatchFilter.AcceptOnMatch"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Filter.MdcFilter">
<summary>
Simple filter to match a keyed string in the <see cref="T:log4net.MD
C"/>
</summary>
<remarks>
<para>
Simple filter to match a keyed string in the <see cref="T:log4net.MD
C"/>
</para>
<para>
As the MDC has been replaced with layered properties the
<see cref="T:log4net.Filter.PropertyFilter"/> should be used instead
.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Filter.PropertyFilter">
<summary>
Simple filter to match a string an event property
</summary>
<remarks>
<para>
Simple filter to match a string in the value for a
specific event property
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Filter.StringMatchFilter">
<summary>
Simple filter to match a string in the rendered message
</summary>
<remarks>
<para>
Simple filter to match a string in the rendered message
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Filter.StringMatchFilter.m_acceptOnMatch">
<summary>
Flag to indicate the behavior when we have a match
</summary>
</member>
<member name="F:log4net.Filter.StringMatchFilter.m_stringToMatch">
<summary>
The string to substring match against the message
</summary>
</member>
<member name="F:log4net.Filter.StringMatchFilter.m_stringRegexToMatch">
<summary>
A string regex to match
</summary>
</member>
<member name="F:log4net.Filter.StringMatchFilter.m_regexToMatch">
<summary>
A regex object to match (generated from m_stringRegexToMatch)
</summary>
</member>
<member name="M:log4net.Filter.StringMatchFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.StringMatchFilter.ActivateOptions">
<summary>
Initialize and precompile the Regex if required
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Filter.StringMatchFilter
.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Filter.StringMatchFilter.Activa
teOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Filter.StringMatchFilter.ActivateOptions"/> mus
t be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Filter.StringMatchFilter.Decide(log4net.Core.Log
gingEvent)">
<summary>
Check if this filter should allow the event to be logged
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>see remarks</returns>
<remarks>
<para>
The rendered message is matched against the <see cref="P:log4net.Fil
ter.StringMatchFilter.StringToMatch"/>.
If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/
> occurs as a substring within
the message then a match will have occurred. If no match occurs
this function will return <see cref="F:log4net.Filter.FilterDecision
.Neutral"/>
allowing other filters to check the event. If a match occurs then
the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnM
atch"/> is checked. If it is
true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is re
turned otherwise
<see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.StringMatchFilter.AcceptOnMatch">
<summary>
<see cref="F:log4net.Filter.FilterDecision.Accept"/> when matching <
see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/> or <see cref="P:lo
g4net.Filter.StringMatchFilter.RegexToMatch"/>
</summary>
<remarks>
<para>
The <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnMatch"/> p
roperty is a flag that determines
the behavior when a matching <see cref="T:log4net.Core.Level"/> is f
ound. If the
flag is set to true then the filter will <see cref="F:log4net.Filter
.FilterDecision.Accept"/> the
logging event, otherwise it will <see cref="F:log4net.Filter.FilterD
ecision.Neutral"/> the event.
</para>
<para>
The default is <c>true</c> i.e. to <see cref="F:log4net.Filter.Filte
rDecision.Accept"/> the event.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.StringMatchFilter.StringToMatch">
<summary>
Sets the static string to match
</summary>
<remarks>
<para>
The string that will be substring matched against
the rendered message. If the message contains this
string then the filter will match. If a match is found then
the result depends on the value of <see cref="P:log4net.Filter.Strin
gMatchFilter.AcceptOnMatch"/>.
</para>
<para>
One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/
> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
must be specified.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.StringMatchFilter.RegexToMatch">
<summary>
Sets the regular expression to match
</summary>
<remarks>
<para>
The regular expression pattern that will be matched against
the rendered message. If the message matches this
pattern then the filter will match. If a match is found then
the result depends on the value of <see cref="P:log4net.Filter.Strin
gMatchFilter.AcceptOnMatch"/>.
</para>
<para>
One of <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/
> or <see cref="P:log4net.Filter.StringMatchFilter.RegexToMatch"/>
must be specified.
</para>
</remarks>
</member>
<member name="F:log4net.Filter.PropertyFilter.m_key">
<summary>
The key to use to lookup the string from the event properties
</summary>
</member>
<member name="M:log4net.Filter.PropertyFilter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Filter.PropertyFilter.Decide(log4net.Core.Loggin
gEvent)">
<summary>
Check if this filter should allow the event to be logged
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>see remarks</returns>
<remarks>
<para>
The event property for the <see cref="P:log4net.Filter.PropertyFilte
r.Key"/> is matched against
the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/>.
If the <see cref="P:log4net.Filter.StringMatchFilter.StringToMatch"/
> occurs as a substring within
the property value then a match will have occurred. If no match occu
rs
this function will return <see cref="F:log4net.Filter.FilterDecision
.Neutral"/>
allowing other filters to check the event. If a match occurs then
the value of <see cref="P:log4net.Filter.StringMatchFilter.AcceptOnM
atch"/> is checked. If it is
true then <see cref="F:log4net.Filter.FilterDecision.Accept"/> is re
turned otherwise
<see cref="F:log4net.Filter.FilterDecision.Deny"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Filter.PropertyFilter.Key">
<summary>
The key to lookup in the event properties and then match against.
</summary>
<remarks>
<para>
The key name to use to lookup in the properties map of the
<see cref="T:log4net.Core.LoggingEvent"/>. The match will be perform
ed against
the value of this property if it exists.
</para>
</remarks>
</member>
<member name="T:log4net.Filter.NdcFilter">
<summary>
Simple filter to match a string in the <see cref="T:log4net.NDC"/>
</summary>
<remarks>
<para>
Simple filter to match a string in the <see cref="T:log4net.NDC"/>
</para>
<para>
As the MDC has been replaced with named stacks stored in the
properties collections the <see cref="T:log4net.Filter.PropertyFilte
r"/> should
be used instead.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Filter.NdcFilter.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Sets the <see cref="P:log4net.Filter.PropertyFilter.Key"/> to <c>"ND
C"</c>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.AppDomainPatternConverter">
<summary>
Write the event appdomain name to the output
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the o
utput writer.
</para>
</remarks>
<author>Daniel Cazzulino</author>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Layout.Pattern.PatternLayoutConverter">
<summary>
Abstract class that provides the formatting functionality that
derived classes need.
</summary>
<remarks>
Conversion specifiers in a conversion patterns are parsed to
individual PatternConverters. Each of which is responsible for
converting a logging event in a converter specific manner.
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Util.PatternConverter">
<summary>
Abstract class that provides the formatting functionality that
derived classes need.
</summary>
<remarks>
<para>
Conversion specifiers in a conversion patterns are parsed to
individual PatternConverters. Each of which is responsible for
converting a logging event in a converter specific manner.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Util.PatternConverter.c_renderBufferSize">
<summary>
Initial buffer size
</summary>
</member>
<member name="F:log4net.Util.PatternConverter.c_renderBufferMaxCapacity"
>
<summary>
Maximum buffer size before it is recycled
</summary>
</member>
<member name="M:log4net.Util.PatternConverter.#ctor">
<summary>
Protected constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.PatternC
onverter"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.Convert(System.IO.TextWrit
er,System.Object)">
<summary>
Evaluate this pattern converter and write the output to a writer.
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">The state object on which the pattern converter
should be executed.</param>
<remarks>
<para>
Derived pattern converters must override this method in order to
convert conversion specifiers in the appropriate way.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.SetNext(log4net.Util.Patte
rnConverter)">
<summary>
Set the next pattern converter in the chains
</summary>
<param name="patternConverter">the pattern converter that should fol
low this converter in the chain</param>
<returns>the next converter</returns>
<remarks>
<para>
The PatternConverter can merge with its neighbor during this method
(or a sub class).
Therefore the return value may or may not be the value of the argume
nt passed in.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.Format(System.IO.TextWrite
r,System.Object)">
<summary>
Write the pattern converter to the writer with appropriate formattin
g
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">The state object on which the pattern converter
should be executed.</param>
<remarks>
<para>
This method calls <see cref="M:log4net.Util.PatternConverter.Convert
(System.IO.TextWriter,System.Object)"/> to allow the subclass to perform
appropriate conversion of the pattern converter. If formatting optio
ns have
been specified via the <see cref="P:log4net.Util.PatternConverter.Fo
rmattingInfo"/> then this method will
apply those formattings before writing the output.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.SpacePad(System.IO.TextWri
ter,System.Int32)">
<summary>
Fast space padding method.
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> to which t
he spaces will be appended.</param>
<param name="length">The number of spaces to be padded.</param>
<remarks>
<para>
Fast space padding method.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternConverter.m_option">
<summary>
The option string to the converter
</summary>
</member>
<member name="M:log4net.Util.PatternConverter.WriteDictionary(System.IO.
TextWriter,log4net.Repository.ILoggerRepository,System.Collections.IDictionary)"
>
<summary>
Write an dictionary to a <see cref="T:System.IO.TextWriter"/>
</summary>
<param name="writer">the writer to write to</param>
<param name="repository">a <see cref="T:log4net.Repository.ILoggerRe
pository"/> to use for object conversion</param>
<param name="value">the value to write to the writer</param>
<remarks>
<para>
Writes the <see cref="T:System.Collections.IDictionary"/> to a write
r in the form:
</para>
<code>
{key1=value1, key2=value2, key3=value3}
</code>
<para>
If the <see cref="T:log4net.Repository.ILoggerRepository"/> specifie
d
is not null then it is used to render the key and value to text, oth
erwise
the object's ToString method is called.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.WriteDictionary(System.IO.
TextWriter,log4net.Repository.ILoggerRepository,System.Collections.IDictionaryEn
umerator)">
<summary>
Write an dictionary to a <see cref="T:System.IO.TextWriter"/>
</summary>
<param name="writer">the writer to write to</param>
<param name="repository">a <see cref="T:log4net.Repository.ILoggerRe
pository"/> to use for object conversion</param>
<param name="value">the value to write to the writer</param>
<remarks>
<para>
Writes the <see cref="T:System.Collections.IDictionaryEnumerator"/>
to a writer in the form:
</para>
<code>
{key1=value1, key2=value2, key3=value3}
</code>
<para>
If the <see cref="T:log4net.Repository.ILoggerRepository"/> specifie
d
is not null then it is used to render the key and value to text, oth
erwise
the object's ToString method is called.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternConverter.WriteObject(System.IO.Text
Writer,log4net.Repository.ILoggerRepository,System.Object)">
<summary>
Write an object to a <see cref="T:System.IO.TextWriter"/>
</summary>
<param name="writer">the writer to write to</param>
<param name="repository">a <see cref="T:log4net.Repository.ILoggerRe
pository"/> to use for object conversion</param>
<param name="value">the value to write to the writer</param>
<remarks>
<para>
Writes the Object to a writer. If the <see cref="T:log4net.Repositor
y.ILoggerRepository"/> specified
is not null then it is used to render the object to text, otherwise
the object's ToString method is called.
</para>
</remarks>
</member>
<member name="P:log4net.Util.PatternConverter.Next">
<summary>
Get the next pattern converter in the chain
</summary>
<value>
the next pattern converter in the chain
</value>
<remarks>
<para>
Get the next pattern converter in the chain
</para>
</remarks>
</member>
<member name="P:log4net.Util.PatternConverter.FormattingInfo">
<summary>
Gets or sets the formatting info for this converter
</summary>
<value>
The formatting info for this converter
</value>
<remarks>
<para>
Gets or sets the formatting info for this converter
</para>
</remarks>
</member>
<member name="P:log4net.Util.PatternConverter.Option">
<summary>
Gets or sets the option value for this converter
</summary>
<summary>
The option for this converter
</summary>
<remarks>
<para>
Gets or sets the option value for this converter
</para>
</remarks>
</member>
<member name="P:log4net.Util.PatternConverter.Properties">
<summary>

</summary>
</member>
<member name="M:log4net.Layout.Pattern.PatternLayoutConverter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Layout.Patter
n.PatternLayoutConverter"/> class.
</summary>
</member>
<member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(Sy
stem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Derived pattern converters must override this method in order to
convert conversion specifiers in the correct way.
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
</member>
<member name="M:log4net.Layout.Pattern.PatternLayoutConverter.Convert(Sy
stem.IO.TextWriter,System.Object)">
<summary>
Derived pattern converters must override this method in order to
convert conversion specifiers in the correct way.
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">The state object on which the pattern converter
should be executed.</param>
</member>
<member name="F:log4net.Layout.Pattern.PatternLayoutConverter.m_ignoresE
xception">
<summary>
Flag indicating if this converter handles exceptions
</summary>
<remarks>
<c>false</c> if this converter handles exceptions
</remarks>
</member>
<member name="P:log4net.Layout.Pattern.PatternLayoutConverter.IgnoresExc
eption">
<summary>
Flag indicating if this converter handles the logging event exceptio
n
</summary>
<value><c>false</c> if this converter handles the logging event exce
ption</value>
<remarks>
<para>
If this converter handles the exception object contained within
<see cref="T:log4net.Core.LoggingEvent"/>, then this property should
be set to
<c>false</c>. Otherwise, if the layout ignores the exception
object, then the property should be set to <c>true</c>.
</para>
<para>
Set this value to override a this default setting. The default
value is <c>true</c>, this converter does not handle the exception.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.AppDomainPatternConverter.Convert
(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the event appdomain name to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LoggingEvent.Domain"/> to the o
utput <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.AspNetCachePatternConverter">
<summary>
Converter for items in the ASP.Net Cache.
</summary>
<remarks>
<para>
Outputs an item from the <see cref="P:System.Web.HttpRuntime.Cache"/
>.
</para>
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="T:log4net.Layout.Pattern.AspNetPatternLayoutConverter">
<summary>
Abstract class that provides access to the current HttpContext (<see
cref="P:System.Web.HttpContext.Current"/>) that
derived classes need.
</summary>
<remarks>
This class handles the case when HttpContext.Current is null by writ
ing
<see cref="P:log4net.Util.SystemInfo.NotAvailableText"/> to the writ
er.
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Layout.Pattern.AspNetPatternLayoutConverter.Conv
ert(System.IO.TextWriter,log4net.Core.LoggingEvent,System.Web.HttpContext)">
<summary>
Derived pattern converters must override this method in order to
convert conversion specifiers in the correct way.
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
<param name="httpContext">The <see cref="T:System.Web.HttpContext"/>
under which the ASP.Net request is running.</param>
</member>
<member name="M:log4net.Layout.Pattern.AspNetCachePatternConverter.Conve
rt(System.IO.TextWriter,log4net.Core.LoggingEvent,System.Web.HttpContext)">
<summary>
Write the ASP.Net Cache item to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
<param name="httpContext">The <see cref="T:System.Web.HttpContext"/>
under which the ASP.Net request is running.</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property. If no property has been set, all key value pairs from the
Cache will
be written to the output.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.AspNetContextPatternConverter">
<summary>
Converter for items in the <see cref="T:System.Web.HttpContext"/>.
</summary>
<remarks>
<para>
Outputs an item from the <see cref="T:System.Web.HttpContext"/>.
</para>
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Layout.Pattern.AspNetContextPatternConverter.Con
vert(System.IO.TextWriter,log4net.Core.LoggingEvent,System.Web.HttpContext)">
<summary>
Write the ASP.Net HttpContext item to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
<param name="httpContext">The <see cref="T:System.Web.HttpContext"/>
under which the ASP.Net request is running.</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.AspNetRequestPatternConverter">
<summary>
Converter for items in the ASP.Net Cache.
</summary>
<remarks>
<para>
Outputs an item from the <see cref="P:System.Web.HttpRuntime.Cache"/
>.
</para>
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Layout.Pattern.AspNetRequestPatternConverter.Con
vert(System.IO.TextWriter,log4net.Core.LoggingEvent,System.Web.HttpContext)">
<summary>
Write the ASP.Net Cache item to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
<param name="httpContext">The <see cref="T:System.Web.HttpContext"/>
under which the ASP.Net request is running.</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.AspNetSessionPatternConverter">
<summary>
Converter for items in the ASP.Net Cache.
</summary>
<remarks>
<para>
Outputs an item from the <see cref="P:System.Web.HttpRuntime.Cache"/
>.
</para>
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Layout.Pattern.AspNetSessionPatternConverter.Con
vert(System.IO.TextWriter,log4net.Core.LoggingEvent,System.Web.HttpContext)">
<summary>
Write the ASP.Net Cache item to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">The <see cref="T:log4net.Core.LoggingEven
t"/> on which the pattern converter should be executed.</param>
<param name="httpContext">The <see cref="T:System.Web.HttpContext"/>
under which the ASP.Net request is running.</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property. If no property has been set, all key value pairs from the
Session will
be written to the output.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.DatePatternConverter">
<summary>
Date pattern converter, uses a <see cref="T:log4net.DateFormatter.ID
ateFormatter"/> to format
the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
</summary>
<remarks>
<para>
Render the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to th
e writer as a string.
</para>
<para>
The value of the <see cref="P:log4net.Util.PatternConverter.Option"/
> determines
the formatting of the date. The following values are allowed:
<list type="definition">
<listheader>
<term>Option value</term>
<description>Output</description>
</listheader>
<item>
<term>ISO8601</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.Iso8601DateF
ormatter"/> formatter.
Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> patte
rn.
</description>
</item>
<item>
<term>DATE</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.DateTimeDate
Formatter"/> formatter.
Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for
example, <c>"06 Nov 1994 15:49:37,459"</c>.
</description>
</item>
<item>
<term>ABSOLUTE</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.AbsoluteTime
DateFormatter"/> formatter.
Formats using the <c>"HH:mm:ss,yyyy"</c> for example, <c
>"15:49:37,459"</c>.
</description>
</item>
<item>
<term>other</term>
<description>
Any other pattern string uses the <see cref="T:log4net.D
ateFormatter.SimpleDateFormatter"/> formatter.
This formatter passes the pattern string to the <see cre
f="T:System.DateTime"/>
<see cref="M:DateTime.ToString(string)"/> method.
For details on valid patterns see
<a href="http://msdn.microsoft.com/library/default.asp?u
rl=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopi
c.asp">DateTimeFormatInfo Class</a>.
</description>
</item>
</list>
</para>
<para>
The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> is in the lo
cal time zone and is rendered in that zone.
To output the time in Universal time see <see cref="T:log4net.Layout
.Pattern.UtcDatePatternConverter"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Layout.Pattern.DatePatternConverter.m_dateFormat
ter">
<summary>
The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to ren
der the date to a string
</summary>
<remarks>
<para>
The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to ren
der the date to a string
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOpti
ons">
<summary>
Initialize the converter pattern based on the <see cref="P:log4net.U
til.PatternConverter.Option"/> property.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.Pattern.DatePatte
rnConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.Pattern.DatePatternConve
rter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.Pattern.DatePatternConverter.ActivateOpt
ions"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.DatePatternConverter.Convert(Syst
em.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Convert the pattern into the rendered message
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the
<see cref="T:log4net.DateFormatter.IDateFormatter"/>
for it to render it to the writer.
</para>
<para>
The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in
the local time zone.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.Pattern.DatePatternConverter.declaringTyp
e">
<summary>
The fully qualified type of the DatePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.ExceptionPatternConverter">
<summary>
Write the exception text to the output
</summary>
<remarks>
<para>
If an exception object is stored in the logging event
it will be rendered into the pattern output with a
trailing newline.
</para>
<para>
If there is no exception then nothing will be output
and no trailing newline will be appended.
It is typical to put a newline before the exception
and to have the exception as the last data in the pattern.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:log4net.Layout.Pattern.ExceptionPatternConverter.Convert
(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the exception text to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
If an exception object is stored in the logging event
it will be rendered into the pattern output with a
trailing newline.
</para>
<para>
If there is no exception or the exception property specified
by the Option value does not exist then nothing will be output
and no trailing newline will be appended.
It is typical to put a newline before the exception
and to have the exception as the last data in the pattern.
</para>
<para>
Recognized values for the Option parameter are:
</para>
<list type="bullet">
<item>
<description>Message</description>
</item>
<item>
<description>Source</description>
</item>
<item>
<description>StackTrace</description>
</item>
<item>
<description>TargetSite</description>
</item>
<item>
<description>HelpLink</description>
</item>
</list>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.FileLocationPatternConverter">
<summary>
Writes the caller location file name to the output
</summary>
<remarks>
<para>
Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileN
ame"/> for
the event to the output writer.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.FileLocationPatternConverter.Conv
ert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the caller location file name to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the value of the <see cref="P:log4net.Core.LocationInfo.FileN
ame"/> for
the <paramref name="loggingEvent"/> to the output <paramref name="wr
iter"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.FullLocationPatternConverter">
<summary>
Write the caller location info to the output
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the
output writer.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.FullLocationPatternConverter.Conv
ert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the caller location info to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LocationInfo.FullInfo"/> to the
output writer.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.IdentityPatternConverter">
<summary>
Writes the event identity to the output
</summary>
<remarks>
<para>
Writes the value of the <see cref="P:log4net.Core.LoggingEvent.Ident
ity"/> to
the output writer.
</para>
</remarks>
<author>Daniel Cazzulino</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.IdentityPatternConverter.Convert(
System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Writes the event identity to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the value of the <paramref name="loggingEvent"/>
<see cref="P:log4net.Core.LoggingEvent.Identity"/> to
the output <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.LevelPatternConverter">
<summary>
Write the event level to the output
</summary>
<remarks>
<para>
Writes the display name of the event <see cref="P:log4net.Core.Loggi
ngEvent.Level"/>
to the writer.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.LevelPatternConverter.Convert(Sys
tem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the event level to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.Level.DisplayName"/> of the <pa
ramref name="loggingEvent"/> <see cref="P:log4net.Core.LoggingEvent.Level"/>
to the <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.LineLocationPatternConverter">
<summary>
Write the caller location line number to the output
</summary>
<remarks>
<para>
Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineN
umber"/> for
the event to the output writer.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.LineLocationPatternConverter.Conv
ert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the caller location line number to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the value of the <see cref="P:log4net.Core.LocationInfo.LineN
umber"/> for
the <paramref name="loggingEvent"/> to the output <paramref name="wr
iter"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.LoggerPatternConverter">
<summary>
Converter for logger name
</summary>
<remarks>
<para>
Outputs the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of
the event.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="T:log4net.Layout.Pattern.NamedPatternConverter">
<summary>
Converter to output and truncate <c>'.'</c> separated strings
</summary>
<remarks>
<para>
This abstract class supports truncating a <c>'.'</c> separated strin
g
to show a specified number of elements from the right hand side.
This is used to truncate class names that are fully qualified.
</para>
<para>
Subclasses should override the <see cref="M:log4net.Layout.Pattern.N
amedPatternConverter.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> method
to
return the fully qualified string.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOpt
ions">
<summary>
Initialize the converter
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.Pattern.NamedPatt
ernConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.Pattern.NamedPatternConv
erter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.Pattern.NamedPatternConverter.ActivateOp
tions"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.NamedPatternConverter.GetFullyQua
lifiedName(log4net.Core.LoggingEvent)">
<summary>
Get the fully qualified string data
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>the fully qualified name</returns>
<remarks>
<para>
Overridden by subclasses to get the fully qualified name before the
precision is applied to it.
</para>
<para>
Return the fully qualified <c>'.'</c> (dot/period) separated string.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.NamedPatternConverter.Convert(Sys
tem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Convert the pattern to the rendered message
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
Render the <see cref="M:log4net.Layout.Pattern.NamedPatternConverter
.GetFullyQualifiedName(log4net.Core.LoggingEvent)"/> to the precision
specified by the <see cref="P:log4net.Util.PatternConverter.Option"/
> property.
</remarks>
</member>
<member name="F:log4net.Layout.Pattern.NamedPatternConverter.declaringTy
pe">
<summary>
The fully qualified type of the NamedPatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.LoggerPatternConverter.GetFullyQu
alifiedName(log4net.Core.LoggingEvent)">
<summary>
Gets the fully qualified name of the logger
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>The fully qualified logger name</returns>
<remarks>
<para>
Returns the <see cref="P:log4net.Core.LoggingEvent.LoggerName"/> of
the <paramref name="loggingEvent"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.MessagePatternConverter">
<summary>
Writes the event message to the output
</summary>
<remarks>
<para>
Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage
(System.IO.TextWriter)"/> method
to write out the event message.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.MessagePatternConverter.Convert(S
ystem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Writes the event message to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Uses the <see cref="M:log4net.Core.LoggingEvent.WriteRenderedMessage
(System.IO.TextWriter)"/> method
to write out the event message.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.MethodLocationPatternConverter">
<summary>
Write the method name to the output
</summary>
<remarks>
<para>
Writes the caller location <see cref="P:log4net.Core.LocationInfo.Me
thodName"/> to
the output.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.MethodLocationPatternConverter.Co
nvert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the method name to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the caller location <see cref="P:log4net.Core.LocationInfo.Me
thodName"/> to
the output.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.NdcPatternConverter">
<summary>
Converter to include event NDC
</summary>
<remarks>
<para>
Outputs the value of the event property named <c>NDC</c>.
</para>
<para>
The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/>
should be used instead.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.NdcPatternConverter.Convert(Syste
m.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the event NDC to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
As the thread context stacks are now stored in named event propertie
s
this converter simply looks up the value of the <c>NDC</c> property.
</para>
<para>
The <see cref="T:log4net.Layout.Pattern.PropertyPatternConverter"/>
should be used instead.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.PropertyPatternConverter">
<summary>
Property pattern converter
</summary>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property.
</para>
<para>
If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set t
o <c>null</c>
then all the properties are written as key value pairs.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.PropertyPatternConverter.Convert(
System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the property value to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property.
</para>
<para>
If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set t
o <c>null</c>
then all the properties are written as key value pairs.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.RelativeTimePatternConverter">
<summary>
Converter to output the relative time of the event
</summary>
<remarks>
<para>
Converter to output the time of the event relative to the start of t
he program.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.Conv
ert(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the relative time to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes out the relative time of the event in milliseconds.
That is the number of milliseconds between the event <see cref="P:lo
g4net.Core.LoggingEvent.TimeStamp"/>
and the <see cref="P:log4net.Core.LoggingEvent.StartTime"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.RelativeTimePatternConverter.Time
DifferenceInMillis(System.DateTime,System.DateTime)">
<summary>
Helper method to get the time difference between two DateTime object
s
</summary>
<param name="start">start time (in the current local time zone)</par
am>
<param name="end">end time (in the current local time zone)</param>
<returns>the time difference in milliseconds</returns>
</member>
<member name="T:log4net.Layout.Pattern.StackTraceDetailPatternConverter"
>
<summary>
Write the caller stack frames to the output
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LocationInfo.StackFrames"/> to
the output writer, using format:
type3.MethodCall3(type param,...) &gt; type2.MethodCall2(type param,
...) &gt; type1.MethodCall1(type param,...)
</para>
</remarks>
<author>Adam Davies</author>
</member>
<member name="T:log4net.Layout.Pattern.StackTracePatternConverter">
<summary>
Write the caller stack frames to the output
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LocationInfo.StackFrames"/> to
the output writer, using format:
type3.MethodCall3 &gt; type2.MethodCall2 &gt; type1.MethodCall1
</para>
</remarks>
<author>Michael Cromwell</author>
</member>
<member name="M:log4net.Layout.Pattern.StackTracePatternConverter.Activa
teOptions">
<summary>
Initialize the converter
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.Pattern.StackTrac
ePatternConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.Pattern.StackTracePatter
nConverter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.Pattern.StackTracePatternConverter.Activ
ateOptions"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.StackTracePatternConverter.Conver
t(System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the strack frames to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LocationInfo.StackFrames"/> to
the output writer.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Pattern.StackTracePatternConverter.GetMet
hodInformation(log4net.Core.MethodItem)">
<summary>
Returns the Name of the method
</summary>
<param name="method"></param>
<remarks>This method was created, so this class could be used as a b
ase class for StackTraceDetailPatternConverter</remarks>
<returns>string</returns>
</member>
<member name="F:log4net.Layout.Pattern.StackTracePatternConverter.declar
ingType">
<summary>
The fully qualified type of the StackTracePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="F:log4net.Layout.Pattern.StackTraceDetailPatternConverter.
declaringType">
<summary>
The fully qualified type of the StackTraceDetailPatternConverter cla
ss.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.ThreadPatternConverter">
<summary>
Converter to include event thread name
</summary>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to t
he output.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.ThreadPatternConverter.Convert(Sy
stem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the ThreadName to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Writes the <see cref="P:log4net.Core.LoggingEvent.ThreadName"/> to t
he <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.TypeNamePatternConverter">
<summary>
Pattern converter for the class name
</summary>
<remarks>
<para>
Outputs the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of t
he event.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.TypeNamePatternConverter.GetFully
QualifiedName(log4net.Core.LoggingEvent)">
<summary>
Gets the fully qualified name of the class
</summary>
<param name="loggingEvent">the event being logged</param>
<returns>The fully qualified type name for the caller location</retu
rns>
<remarks>
<para>
Returns the <see cref="P:log4net.Core.LocationInfo.ClassName"/> of t
he <paramref name="loggingEvent"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Pattern.UserNamePatternConverter">
<summary>
Converter to include event user name
</summary>
<author>Douglas de la Torre</author>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.UserNamePatternConverter.Convert(
System.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Convert the pattern to the rendered message
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
</member>
<member name="T:log4net.Layout.Pattern.UtcDatePatternConverter">
<summary>
Write the TimeStamp to the output
</summary>
<remarks>
<para>
Date pattern converter, uses a <see cref="T:log4net.DateFormatter.ID
ateFormatter"/> to format
the date of a <see cref="T:log4net.Core.LoggingEvent"/>.
</para>
<para>
Uses a <see cref="T:log4net.DateFormatter.IDateFormatter"/> to forma
t the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/>
in Universal time.
</para>
<para>
See the <see cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
for details on the date pattern syntax.
</para>
</remarks>
<seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.Pattern.UtcDatePatternConverter.Convert(S
ystem.IO.TextWriter,log4net.Core.LoggingEvent)">
<summary>
Write the TimeStamp to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Pass the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> to the
<see cref="T:log4net.DateFormatter.IDateFormatter"/>
for it to render it to the writer.
</para>
<para>
The <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> passed is in
the local time zone, this is converted
to Universal time before it is rendered.
</para>
</remarks>
<seealso cref="T:log4net.Layout.Pattern.DatePatternConverter"/>
</member>
<member name="F:log4net.Layout.Pattern.UtcDatePatternConverter.declaring
Type">
<summary>
The fully qualified type of the UtcDatePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Layout.DynamicPatternLayout">
<summary>
A flexible layout configurable with pattern string that re-evaluates
on each call.
</summary>
<remarks>
<para>This class is built on <see cref="T:log4net.Layout.PatternLayo
ut"></see> and provides all the
features and capabilities of PatternLayout. PatternLayout is a 'sta
tic' class
in that its layout is done once at configuration time. This class w
ill recreate
the layout on each reference.</para>
<para>One important difference between PatternLayout and DynamicPatt
ernLayout is the
treatment of the Header and Footer parameters in the configuration.
The Header and Footer
parameters for DynamicPatternLayout must be syntactically in the for
m of a PatternString,
but should not be marked as type log4net.Util.PatternString. Doing
so causes the
pattern to be statically converted at configuration time and causes
DynamicPatternLayout
to perform the same as PatternLayout.</para>
<para>Please see <see cref="T:log4net.Layout.PatternLayout"/> for co
mplete documentation.</para>
<example>
&lt;layout type="log4net.Layout.DynamicPatternLayout"&gt;
&lt;param name="Header" value="%newline**** Trace Opened Local
: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****
%newline" /&gt;
&lt;param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd
HH:mm:ss.fff} ****%newline" /&gt;
&lt;/layout&gt;
</example>
</remarks>
</member>
<member name="T:log4net.Layout.PatternLayout">
<summary>
A flexible layout configurable with pattern string.
</summary>
<remarks>
<para>
The goal of this class is to <see cref="M:PatternLayout.Format(TextW
riter,LoggingEvent)"/> a
<see cref="T:log4net.Core.LoggingEvent"/> as a string. The results
depend on the <i>conversion pattern</i>.
</para>
<para>
The conversion pattern is closely related to the conversion
pattern of the printf function in C. A conversion pattern is
composed of literal text and format control expressions called
<i>conversion specifiers</i>.
</para>
<para>
<i>You are free to insert any literal text within the conversion
pattern.</i>
</para>
<para>
Each conversion specifier starts with a percent sign (%) and is
followed by optional <i>format modifiers</i> and a <i>conversion
pattern name</i>. The conversion pattern name specifies the type of
data, e.g. logger, level, date, thread name. The format
modifiers control such things as field width, padding, left and
right justification. The following is a simple example.
</para>
<para>
Let the conversion pattern be <b>"%-5level [%thread]: %message%newli
ne"</b> and assume
that the log4net environment was set to use a PatternLayout. Then th
e
statements
</para>
<code lang="C#">
ILog log = LogManager.GetLogger(typeof(TestApp));
log.Debug("Message 1");
log.Warn("Message 2");
</code>
<para>would yield the output</para>
<code>
DEBUG [main]: Message 1
WARN [main]: Message 2
</code>
<para>
Note that there is no explicit separator between text and
conversion specifiers. The pattern parser knows when it has reached
the end of a conversion specifier when it reads a conversion
character. In the example above the conversion specifier
<b>%-5level</b> means the level of the logging event should be left
justified to a width of five characters.
</para>
<para>
The recognized conversion pattern names are:
</para>
<list type="table">
<listheader>
<term>Conversion Pattern Name</term>
<description>Effect</description>
</listheader>
<item>
<term>a</term>
<description>Equivalent to <b>appdomain</b></description>
</item>
<item>
<term>appdomain</term>
<description>
Used to output the friendly name of the AppDomai
n where the
logging event was generated.
</description>
</item>
<item>
<term>aspnet-cache</term>
<description>
<para>
Used to output all cache items in the case of <b>%aspnet
-cache</b> or just one named item if used as <b>%aspnet-cache{key}</b>
</para>
<para>
This pattern is not available for Compact Framework or C
lient Profile assemblies.
</para>
</description>
</item>
<item>
<term>aspnet-context</term>
<description>
<para>
Used to output all context items in the case of <b>%aspn
et-context</b> or just one named item if used as <b>%aspnet-context{key}</b>
</para>
<para>
This pattern is not available for Compact Framework or C
lient Profile assemblies.
</para>
</description>
</item>
<item>
<term>aspnet-request</term>
<description>
<para>
Used to output all request parameters in the case of <b>
%aspnet-request</b> or just one named param if used as <b>%aspnet-request{key}</
b>
</para>
<para>
This pattern is not available for Compact Framework or C
lient Profile assemblies.
</para>
</description>
</item>
<item>
<term>aspnet-session</term>
<description>
<para>
Used to output all session items in the case of <b>%aspn
et-session</b> or just one named item if used as <b>%aspnet-session{key}</b>
</para>
<para>
This pattern is not available for Compact Framework or C
lient Profile assemblies.
</para>
</description>
</item>
<item>
<term>c</term>
<description>Equivalent to <b>logger</b></description>
</item>
<item>
<term>C</term>
<description>Equivalent to <b>type</b></description>
</item>
<item>
<term>class</term>
<description>Equivalent to <b>type</b></description>
</item>
<item>
<term>d</term>
<description>Equivalent to <b>date</b></description>
</item>
<item>
<term>date</term>
<description>
<para>
Used to output the date of the logging event in
the local time zone.
To output the date in universal time use the <c>
%utcdate</c> pattern.
The date conversion
specifier may be followed by a <i>date format sp
ecifier</i> enclosed
between braces. For example, <b>%date{HH:mm:ss,f
ff}</b> or
<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>. If no d
ate format specifier is
given then ISO8601 format is
assumed (<see cref="T:log4net.DateFormatter.Iso8
601DateFormatter"/>).
</para>
<para>
The date format specifier admits the same syntax
as the
time pattern string of the <see cref="M:DateTime
.ToString(string)"/>.
</para>
<para>
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
<see cref="T:log4net.DateFormatter.AbsoluteTimeD
ateFormatter"/>,
<see cref="T:log4net.DateFormatter.DateTimeDateF
ormatter"/> and respectively
<see cref="T:log4net.DateFormatter.Iso8601DateFo
rmatter"/>. For example,
<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
</para>
<para>
These dedicated date formatters perform signific
antly
better than <see cref="M:DateTime.ToString(strin
g)"/>.
</para>
</description>
</item>
<item>
<term>exception</term>
<description>
<para>
Used to output the exception passed in with the
log message.
</para>
<para>
If an exception object is stored in the logging
event
it will be rendered into the pattern output with
a
trailing newline.
If there is no exception then nothing will be ou
tput
and no trailing newline will be appended.
It is typical to put a newline before the except
ion
and to have the exception as the last data in th
e pattern.
</para>
</description>
</item>
<item>
<term>F</term>
<description>Equivalent to <b>file</b></description>
</item>
<item>
<term>file</term>
<description>
<para>
Used to output the file name where the logging r
equest was
issued.
</para>
<para>
<b>WARNING</b> Generating caller location inform
ation is
extremely slow. Its use should be avoided unless
execution speed
is not an issue.
</para>
<para>
See the note below on the availability of caller
location information.
</para>
</description>
</item>
<item>
<term>identity</term>
<description>
<para>
Used to output the user name for the currently a
ctive user
(Principal.Identity.Name).
</para>
<para>
<b>WARNING</b> Generating caller information is
extremely slow. Its use should be avoided unless
execution speed
is not an issue.
</para>
</description>
</item>
<item>
<term>l</term>
<description>Equivalent to <b>location</b></description>
</item>
<item>
<term>L</term>
<description>Equivalent to <b>line</b></description>
</item>
<item>
<term>location</term>
<description>
<para>
Used to output location information of the calle
r which generated
the logging event.
</para>
<para>
The location information depends on the CLI impl
ementation but
usually consists of the fully qualified name of
the calling
method followed by the callers source the file n
ame and line
number between parentheses.
</para>
<para>
The location information can be very useful. How
ever, its
generation is <b>extremely</b> slow. Its use sho
uld be avoided
unless execution speed is not an issue.
</para>
<para>
See the note below on the availability of caller
location information.
</para>
</description>
</item>
<item>
<term>level</term>
<description>
<para>
Used to output the level of the logging event.
</para>
</description>
</item>
<item>
<term>line</term>
<description>
<para>
Used to output the line number from where the lo
gging request
was issued.
</para>
<para>
<b>WARNING</b> Generating caller location inform
ation is
extremely slow. Its use should be avoided unless
execution speed
is not an issue.
</para>
<para>
See the note below on the availability of caller
location information.
</para>
</description>
</item>
<item>
<term>logger</term>
<description>
<para>
Used to output the logger of the logging event.
The
logger conversion specifier can be optionally fo
llowed by
<i>precision specifier</i>, that is a decimal co
nstant in
brackets.
</para>
<para>
If a precision specifier is given, then only the
corresponding
number of right most components of the logger na
me will be
printed. By default the logger name is printed i
n full.
</para>
<para>
For example, for the logger name "a.b.c" the pat
tern
<b>%logger{2}</b> will output "b.c".
</para>
</description>
</item>
<item>
<term>m</term>
<description>Equivalent to <b>message</b></description>
</item>
<item>
<term>M</term>
<description>Equivalent to <b>method</b></description>
</item>
<item>
<term>message</term>
<description>
<para>
Used to output the application supplied message
associated with
the logging event.
</para>
</description>
</item>
<item>
<term>mdc</term>
<description>
<para>
The MDC (old name for the ThreadContext.Properti
es) is now part of the
combined event properties. This pattern is suppo
rted for compatibility
but is equivalent to <b>property</b>.
</para>
</description>
</item>
<item>
<term>method</term>
<description>
<para>
Used to output the method name where the logging
request was
issued.
</para>
<para>
<b>WARNING</b> Generating caller location inform
ation is
extremely slow. Its use should be avoided unless
execution speed
is not an issue.
</para>
<para>
See the note below on the availability of caller
location information.
</para>
</description>
</item>
<item>
<term>n</term>
<description>Equivalent to <b>newline</b></description>
</item>
<item>
<term>newline</term>
<description>
<para>
Outputs the platform dependent line separator ch
aracter or
characters.
</para>
<para>
This conversion pattern offers the same performa
nce as using
non-portable line separator strings such as
"\n", or "\r\n".
Thus, it is the preferred way of specifying a li
ne separator.
</para>
</description>
</item>
<item>
<term>ndc</term>
<description>
<para>
Used to output the NDC (nested diagnostic contex
t) associated
with the thread that generated the logging event
.
</para>
</description>
</item>
<item>
<term>p</term>
<description>Equivalent to <b>level</b></description>
</item>
<item>
<term>P</term>
<description>Equivalent to <b>property</b></description>
</item>
<item>
<term>properties</term>
<description>Equivalent to <b>property</b></description>
</item>
<item>
<term>property</term>
<description>
<para>
Used to output the an event specific property. T
he key to
lookup must be specified within braces and direc
tly following the
pattern specifier, e.g. <b>%property{user}</b> w
ould include the value
from the property that is keyed by the string 'u
ser'. Each property value
that is to be included in the log must be specif
ied separately.
Properties are added to events by loggers or app
enders. By default
the <c>log4net:HostName</c> property is set to t
he name of machine on
which the event was originally logged.
</para>
<para>
If no key is specified, e.g. <b>%property</b> th
en all the keys and their
values are printed in a comma separated list.
</para>
<para>
The properties of an event are combined from a n
umber of different
contexts. These are listed below in the order in
which they are searched.
</para>
<list type="definition">
<item>
<term>the event properties</term
>
<description>
The event has <see cref="P:log4n
et.Core.LoggingEvent.Properties"/> that can be set. These
properties are specific to this
event only.
</description>
</item>
<item>
<term>the thread properties</ter
m>
<description>
The <see cref="P:log4net.ThreadC
ontext.Properties"/> that are set on the current
thread. These properties are sha
red by all events logged on this thread.
</description>
</item>
<item>
<term>the global properties</ter
m>
<description>
The <see cref="P:log4net.GlobalC
ontext.Properties"/> that are set globally. These
properties are shared by all the
threads in the AppDomain.
</description>
</item>
</list>

</description>
</item>
<item>
<term>r</term>
<description>Equivalent to <b>timestamp</b></description>
</item>
<item>
<term>stacktrace</term>
<description>
<para>
Used to output the stack trace of the logging ev
ent
The stack trace level specifier may be enclosed
between braces. For example, <b>%stacktrace{leve
l}</b>.
If no stack trace level specifier is given then
1 is assumed
</para>
<para>
Output uses the format:
type3.MethodCall3 &gt; type2.MethodCall2 &gt; ty
pe1.MethodCall1
</para>
<para>
This pattern is not available for Compact Framework asse
mblies.
</para>
</description>
</item>
<item>
<term>stacktracedetail</term>
<description>
<para>
Used to output the stack trace of the logging ev
ent
The stack trace level specifier may be enclosed
between braces. For example, <b>%stacktracedetai
l{level}</b>.
If no stack trace level specifier is given then
1 is assumed
</para>
<para>
Output uses the format:
type3.MethodCall3(type param,...) &gt; type2.MethodCall2
(type param,...) &gt; type1.MethodCall1(type param,...)
</para>
<para>
This pattern is not available for Compact Framework asse
mblies.
</para>
</description>
</item>
<item>
<term>t</term>
<description>Equivalent to <b>thread</b></description>
</item>
<item>
<term>timestamp</term>
<description>
<para>
Used to output the number of milliseconds elapse
d since the start
of the application until the creation of the log
ging event.
</para>
</description>
</item>
<item>
<term>thread</term>
<description>
<para>
Used to output the name of the thread that gener
ated the
logging event. Uses the thread number if no name
is available.
</para>
</description>
</item>
<item>
<term>type</term>
<description>
<para>
Used to output the fully qualified type name of
the caller
issuing the logging request. This conversion spe
cifier
can be optionally followed by <i>precision speci
fier</i>, that
is a decimal constant in brackets.
</para>
<para>
If a precision specifier is given, then only the
corresponding
number of right most components of the class nam
e will be
printed. By default the class name is output in
fully qualified form.
</para>
<para>
For example, for the class name "log4net.Layout.
PatternLayout", the
pattern <b>%type{1}</b> will output "PatternLayo
ut".
</para>
<para>
<b>WARNING</b> Generating the caller class infor
mation is
slow. Thus, its use should be avoided unless exe
cution speed is
not an issue.
</para>
<para>
See the note below on the availability of caller
location information.
</para>
</description>
</item>
<item>
<term>u</term>
<description>Equivalent to <b>identity</b></description>
</item>
<item>
<term>username</term>
<description>
<para>
Used to output the WindowsIdentity for the curre
ntly
active user.
</para>
<para>
<b>WARNING</b> Generating caller WindowsIdentity
information is
extremely slow. Its use should be avoided unless
execution speed
is not an issue.
</para>
</description>
</item>
<item>
<term>utcdate</term>
<description>
<para>
Used to output the date of the logging event in
universal time.
The date conversion
specifier may be followed by a <i>date format sp
ecifier</i> enclosed
between braces. For example, <b>%utcdate{HH:mm:s
s,fff}</b> or
<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>. If n
o date format specifier is
given then ISO8601 format is
assumed (<see cref="T:log4net.DateFormatter.Iso8
601DateFormatter"/>).
</para>
<para>
The date format specifier admits the same syntax
as the
time pattern string of the <see cref="M:DateTime
.ToString(string)"/>.
</para>
<para>
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
<see cref="T:log4net.DateFormatter.AbsoluteTimeD
ateFormatter"/>,
<see cref="T:log4net.DateFormatter.DateTimeDateF
ormatter"/> and respectively
<see cref="T:log4net.DateFormatter.Iso8601DateFo
rmatter"/>. For example,
<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE
}</b>.
</para>
<para>
These dedicated date formatters perform signific
antly
better than <see cref="M:DateTime.ToString(strin
g)"/>.
</para>
</description>
</item>
<item>
<term>w</term>
<description>Equivalent to <b>username</b></description>
</item>
<item>
<term>x</term>
<description>Equivalent to <b>ndc</b></description>
</item>
<item>
<term>X</term>
<description>Equivalent to <b>mdc</b></description>
</item>
<item>
<term>%</term>
<description>
<para>
The sequence %% outputs a single percent sign.
</para>
</description>
</item>
</list>
<para>
The single letter patterns are deprecated in favor of the
longer more descriptive pattern names.
</para>
<para>
By default the relevant information is output as is. However,
with the aid of format modifiers it is possible to change the
minimum field width, the maximum field width and justification.
</para>
<para>
The optional format modifier is placed between the percent sign
and the conversion pattern name.
</para>
<para>
The first optional format modifier is the <i>left justification
flag</i> which is just the minus (-) character. Then comes the
optional <i>minimum field width</i> modifier. This is a decimal
constant that represents the minimum number of characters to
output. If the data item requires fewer characters, it is padded on
either the left or the right until the minimum width is
reached. The default is to pad on the left (right justify) but you
can specify right padding with the left justification flag. The
padding character is space. If the data item is larger than the
minimum field width, the field is expanded to accommodate the
data. The value is never truncated.
</para>
<para>
This behavior can be changed using the <i>maximum field
width</i> modifier which is designated by a period followed by a
decimal constant. If the data item is longer than the maximum
field, then the extra characters are removed from the
<i>beginning</i> of the data item and not from the end. For
example, it the maximum field width is eight and the data item is
ten characters long, then the first two characters of the data item
are dropped. This behavior deviates from the printf function in C
where truncation is done from the end.
</para>
<para>
Below are various format modifier examples for the logger
conversion specifier.
</para>
<div class="tablediv">
<table class="dtTABLE" cellspacing="0">
<tr>
<th>Format modifier</th>
<th>left justify</th>
<th>minimum width</th>
<th>maximum width</th>
<th>comment</th>
</tr>
<tr>
<td align="center">%20logger</td>
<td align="center">false</td>
<td align="center">20</td>
<td align="center">none</td>
<td>
<para>
Left pad with spaces if the logger name
is less than 20
characters long.
</para>
</td>
</tr>
<tr>
<td align="center">%-20logger</td>
<td align="center">true</td>
<td align="center">20</td>
<td align="center">none</td>
<td>
<para>
Right pad with spaces if the logger
name is less than 20 characters long.
</para>
</td>
</tr>
<tr>
<td align="center">%.30logger</td>
<td align="center">NA</td>
<td align="center">none</td>
<td align="center">30</td>
<td>
<para>
Truncate from the beginning if the logge
r
name is longer than 30 characters.
</para>
</td>
</tr>
<tr>
<td align="center"><nobr>%20.30logger</nobr></td
>
<td align="center">false</td>
<td align="center">20</td>
<td align="center">30</td>
<td>
<para>
Left pad with spaces if the logger name
is shorter than 20
characters. However, if logger name is l
onger than 30 characters,
then truncate from the beginning.
</para>
</td>
</tr>
<tr>
<td align="center">%-20.30logger</td>
<td align="center">true</td>
<td align="center">20</td>
<td align="center">30</td>
<td>
<para>
Right pad with spaces if the logger name
is shorter than 20
characters. However, if logger name is l
onger than 30 characters,
then truncate from the beginning.
</para>
</td>
</tr>
</table>
</div>
<para>
<b>Note about caller location information.</b><br/>
The following patterns <c>%type %file %line %method %location %class
%C %F %L %l %M</c>
all generate caller location information.
Location information uses the <c>System.Diagnostics.StackTrace</c> c
lass to generate
a call stack. The caller's information is then extracted from this s
tack.
</para>
<note type="caution">
<para>
The <c>System.Diagnostics.StackTrace</c> class is not supported on t
he
.NET Compact Framework 1.0 therefore caller location information is
not
available on that framework.
</para>
</note>
<note type="caution">
<para>
The <c>System.Diagnostics.StackTrace</c> class has this to say about
Release builds:
</para>
<para>
"StackTrace information will be most informative with Debug build co
nfigurations.
By default, Debug builds include debug symbols, while Release builds
do not. The
debug symbols contain most of the file, method name, line number, an
d column
information used in constructing StackFrame and StackTrace objects.
StackTrace
might not report as many method calls as expected, due to code trans
formations
that occur during optimization."
</para>
<para>
This means that in a Release build the caller information may be inc
omplete or may
not exist at all! Therefore caller location information cannot be re
lied upon in a Release build.
</para>
</note>
<para>
Additional pattern converters may be registered with a specific <see
cref="T:log4net.Layout.PatternLayout"/>
instance using the <see cref="M:AddConverter(string, Type)"/> method
.
</para>
</remarks>
<example>
This is a more detailed pattern.
<code><b>%timestamp [%thread] %level %logger %ndc - %message%newline
</b></code>
</example>
<example>
A similar pattern except that the relative time is
right padded if less than 6 digits, thread name is right padded if
less than 15 characters and truncated if longer and the logger
name is left padded if shorter than 30 characters and truncated if
longer.
<code><b>%-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %m
essage%newline</b></code>
</example>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Douglas de la Torre</author>
<author>Daniel Cazzulino</author>
</member>
<member name="T:log4net.Layout.LayoutSkeleton">
<summary>
Extend this abstract class to create your own log layout format.
</summary>
<remarks>
<para>
This is the base implementation of the <see cref="T:log4net.Layout.I
Layout"/>
interface. Most layout objects should extend this class.
</para>
</remarks>
<remarks>
<note type="inheritinfo">
<para>
Subclasses must implement the <see cref="M:Format(TextWriter,Logging
Event)"/>
method.
</para>
<para>
Subclasses should set the <see cref="P:log4net.Layout.LayoutSkeleton
.IgnoresException"/> in their default
constructor.
</para>
</note>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Layout.ILayout">
<summary>
Interface implemented by layout objects
</summary>
<remarks>
<para>
An <see cref="T:log4net.Layout.ILayout"/> object is used to format a
<see cref="T:log4net.Core.LoggingEvent"/>
as text. The <see cref="M:Format(TextWriter,LoggingEvent)"/> method
is called by an
appender to transform the <see cref="T:log4net.Core.LoggingEvent"/>
into a string.
</para>
<para>
The layout can also supply <see cref="P:log4net.Layout.ILayout.Heade
r"/> and <see cref="P:log4net.Layout.ILayout.Footer"/>
text that is appender before any events and after all the events res
pectively.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.ILayout.Format(System.IO.TextWriter,log4n
et.Core.LoggingEvent)">
<summary>
Implement this method to create your own layout format.
</summary>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<param name="loggingEvent">The event to format</param>
<remarks>
<para>
This method is called by an appender to format
the <paramref name="loggingEvent"/> as text and output to a writer.
</para>
<para>
If the caller does not have a <see cref="T:System.IO.TextWriter"/> a
nd prefers the
event to be formatted as a <see cref="T:System.String"/> then the fo
llowing
code can be used to format the event into a <see cref="T:System.IO.S
tringWriter"/>.
</para>
<code lang="C#">
StringWriter writer = new StringWriter();
Layout.Format(writer, loggingEvent);
string formattedEvent = writer.ToString();
</code>
</remarks>
</member>
<member name="P:log4net.Layout.ILayout.ContentType">
<summary>
The content type output by this layout.
</summary>
<value>The content type</value>
<remarks>
<para>
The content type output by this layout.
</para>
<para>
This is a MIME type e.g. <c>"text/plain"</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.ILayout.Header">
<summary>
The header for the layout format.
</summary>
<value>the layout header</value>
<remarks>
<para>
The Header text will be appended before any logging events
are formatted and appended.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.ILayout.Footer">
<summary>
The footer for the layout format.
</summary>
<value>the layout footer</value>
<remarks>
<para>
The Footer text will be appended after all the logging events
have been formatted and appended.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.ILayout.IgnoresException">
<summary>
Flag indicating if this layout handle exceptions
</summary>
<value><c>false</c> if this layout handles exceptions</value>
<remarks>
<para>
If this layout handles the exception object contained within
<see cref="T:log4net.Core.LoggingEvent"/>, then the layout should re
turn
<c>false</c>. Otherwise, if the layout ignores the exception
object, then the layout should return <c>true</c>.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.LayoutSkeleton.m_header">
<summary>
The header text
</summary>
<remarks>
<para>
See <see cref="P:log4net.Layout.LayoutSkeleton.Header"/> for more in
formation.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.LayoutSkeleton.m_footer">
<summary>
The footer text
</summary>
<remarks>
<para>
See <see cref="P:log4net.Layout.LayoutSkeleton.Footer"/> for more in
formation.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.LayoutSkeleton.m_ignoresException">
<summary>
Flag indicating if this layout handles exceptions
</summary>
<remarks>
<para>
<c>false</c> if this layout handles exceptions
</para>
</remarks>
</member>
<member name="M:log4net.Layout.LayoutSkeleton.#ctor">
<summary>
Empty default constructor
</summary>
<remarks>
<para>
Empty default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Layout.LayoutSkeleton.ActivateOptions">
<summary>
Activate component options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.LayoutSkeleton.Ac
tivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.LayoutSkeleton.ActivateO
ptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.LayoutSkeleton.ActivateOptions"/> must b
e called again.
</para>
<para>
This method must be implemented by the subclass.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.LayoutSkeleton.Format(System.IO.TextWrite
r,log4net.Core.LoggingEvent)">
<summary>
Implement this method to create your own layout format.
</summary>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<param name="loggingEvent">The event to format</param>
<remarks>
<para>
This method is called by an appender to format
the <paramref name="loggingEvent"/> as text.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.LayoutSkeleton.Format(log4net.Core.Loggin
gEvent)">
<summary>
Convenience method for easily formatting the logging event into a st
ring variable.
</summary>
<param name="loggingEvent"></param>
<remarks>
Creates a new StringWriter instance to store the formatted logging e
vent.
</remarks>
</member>
<member name="P:log4net.Layout.LayoutSkeleton.ContentType">
<summary>
The content type output by this layout.
</summary>
<value>The content type is <c>"text/plain"</c></value>
<remarks>
<para>
The content type output by this layout.
</para>
<para>
This base class uses the value <c>"text/plain"</c>.
To change this value a subclass must override this
property.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.LayoutSkeleton.Header">
<summary>
The header for the layout format.
</summary>
<value>the layout header</value>
<remarks>
<para>
The Header text will be appended before any logging events
are formatted and appended.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.LayoutSkeleton.Footer">
<summary>
The footer for the layout format.
</summary>
<value>the layout footer</value>
<remarks>
<para>
The Footer text will be appended after all the logging events
have been formatted and appended.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.LayoutSkeleton.IgnoresException">
<summary>
Flag indicating if this layout handles exceptions
</summary>
<value><c>false</c> if this layout handles exceptions</value>
<remarks>
<para>
If this layout handles the exception object contained within
<see cref="T:log4net.Core.LoggingEvent"/>, then the layout should re
turn
<c>false</c>. Otherwise, if the layout ignores the exception
object, then the layout should return <c>true</c>.
</para>
<para>
Set this value to override a this default setting. The default
value is <c>true</c>, this layout does not handle the exception.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.PatternLayout.DefaultConversionPattern">
<summary>
Default pattern string for log output.
</summary>
<remarks>
<para>
Default pattern string for log output.
Currently set to the string <b>"%message%newline"</b>
which just prints the application supplied message.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.PatternLayout.DetailConversionPattern">
<summary>
A detailed conversion pattern
</summary>
<remarks>
<para>
A conversion pattern which includes Time, Thread, Logger, and Nested
Context.
Current value is <b>%timestamp [%thread] %level %logger %ndc - %mess
age%newline</b>.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.PatternLayout.s_globalRulesRegistry">
<summary>
Internal map of converter identifiers to converter types.
</summary>
<remarks>
<para>
This static map is overridden by the m_converterRegistry instance ma
p
</para>
</remarks>
</member>
<member name="F:log4net.Layout.PatternLayout.m_pattern">
<summary>
the pattern
</summary>
</member>
<member name="F:log4net.Layout.PatternLayout.m_head">
<summary>
the head of the pattern converter chain
</summary>
</member>
<member name="F:log4net.Layout.PatternLayout.m_instanceRulesRegistry">
<summary>
patterns defined on this PatternLayout only
</summary>
</member>
<member name="M:log4net.Layout.PatternLayout.#cctor">
<summary>
Initialize the global registry
</summary>
<remarks>
<para>
Defines the builtin global rules.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.#ctor">
<summary>
Constructs a PatternLayout using the DefaultConversionPattern
</summary>
<remarks>
<para>
The default pattern just produces the application supplied message.
</para>
<para>
Note to Inheritors: This constructor calls the virtual method
<see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System
.String)"/>. If you override this method be
aware that it will be called before your is called constructor.
</para>
<para>
As per the <see cref="T:log4net.Core.IOptionHandler"/> contract the
<see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/>
method must be called after the properties on this object have been
configured.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.#ctor(System.String)">
<summary>
Constructs a PatternLayout using the supplied conversion pattern
</summary>
<param name="pattern">the pattern to use</param>
<remarks>
<para>
Note to Inheritors: This constructor calls the virtual method
<see cref="M:log4net.Layout.PatternLayout.CreatePatternParser(System
.String)"/>. If you override this method be
aware that it will be called before your is called constructor.
</para>
<para>
When using this constructor the <see cref="M:log4net.Layout.PatternL
ayout.ActivateOptions"/> method
need not be called. This may not be the case when using a subclass.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.CreatePatternParser(System.
String)">
<summary>
Create the pattern parser instance
</summary>
<param name="pattern">the pattern to parse</param>
<returns>The <see cref="T:log4net.Util.PatternParser"/> that will fo
rmat the event</returns>
<remarks>
<para>
Creates the <see cref="T:log4net.Util.PatternParser"/> used to parse
the conversion string. Sets the
global and instance rules on the <see cref="T:log4net.Util.PatternPa
rser"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.ActivateOptions">
<summary>
Initialize layout options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.PatternLayout.Act
ivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.PatternLayout.ActivateOp
tions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.PatternLayout.ActivateOptions"/> must be
called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.Format(System.IO.TextWriter
,log4net.Core.LoggingEvent)">
<summary>
Produces a formatted string as specified by the conversion pattern.
</summary>
<param name="loggingEvent">the event being logged</param>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<remarks>
<para>
Parse the <see cref="T:log4net.Core.LoggingEvent"/> using the patter
format
specified in the <see cref="P:log4net.Layout.PatternLayout.Conversio
nPattern"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.AddConverter(log4net.Util.C
onverterInfo)">
<summary>
Add a converter to this PatternLayout
</summary>
<param name="converterInfo">the converter info</param>
<remarks>
<para>
This version of the method is used by the configurator.
Programmatic users should use the alternative <see cref="M:AddConver
ter(string,Type)"/> method.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.PatternLayout.AddConverter(System.String,
System.Type)">
<summary>
Add a converter to this PatternLayout
</summary>
<param name="name">the name of the conversion pattern for this conve
rter</param>
<param name="type">the type of the converter</param>
<remarks>
<para>
Add a named pattern converter to this instance. This
converter will be used in the formatting of the event.
This method must be called before <see cref="M:log4net.Layout.Patter
nLayout.ActivateOptions"/>.
</para>
<para>
The <paramref name="type"/> specified must extend the
<see cref="T:log4net.Util.PatternConverter"/> type.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.PatternLayout.ConversionPattern">
<summary>
The pattern formatting string
</summary>
<remarks>
<para>
The <b>ConversionPattern</b> option. This is the string which
controls formatting and consists of a mix of literal content and
conversion specifiers.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.DynamicPatternLayout.m_headerPatternStrin
g">
<summary>
The header PatternString
</summary>
</member>
<member name="F:log4net.Layout.DynamicPatternLayout.m_footerPatternStrin
g">
<summary>
The footer PatternString
</summary>
</member>
<member name="M:log4net.Layout.DynamicPatternLayout.#ctor">
<summary>
Constructs a DynamicPatternLayout using the DefaultConversionPattern
</summary>
<remarks>
<para>
The default pattern just produces the application supplied message.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.DynamicPatternLayout.#ctor(System.String)
">
<summary>
Constructs a DynamicPatternLayout using the supplied conversion patt
ern
</summary>
<param name="pattern">the pattern to use</param>
<remarks>
</remarks>
</member>
<member name="P:log4net.Layout.DynamicPatternLayout.Header">
<summary>
The header for the layout format.
</summary>
<value>the layout header</value>
<remarks>
<para>
The Header text will be appended before any logging events
are formatted and appended.
</para>
The pattern will be formatted on each get operation.
</remarks>
</member>
<member name="P:log4net.Layout.DynamicPatternLayout.Footer">
<summary>
The footer for the layout format.
</summary>
<value>the layout footer</value>
<remarks>
<para>
The Footer text will be appended after all the logging events
have been formatted and appended.
</para>
The pattern will be formatted on each get operation.
</remarks>
</member>
<member name="T:log4net.Layout.ExceptionLayout">
<summary>
A Layout that renders only the Exception text from the logging event
</summary>
<remarks>
<para>
A Layout that renders only the Exception text from the logging event
.
</para>
<para>
This Layout should only be used with appenders that utilize multiple
layouts (e.g. <see cref="T:log4net.Appender.AdoNetAppender"/>).
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.ExceptionLayout.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Constructs a ExceptionLayout
</para>
</remarks>
</member>
<member name="M:log4net.Layout.ExceptionLayout.ActivateOptions">
<summary>
Activate component options
</summary>
<remarks>
<para>
Part of the <see cref="T:log4net.Core.IOptionHandler"/> component ac
tivation
framework.
</para>
<para>
This method does nothing as options become effective immediately.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.ExceptionLayout.Format(System.IO.TextWrit
er,log4net.Core.LoggingEvent)">
<summary>
Gets the exception text from the logging event
</summary>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<param name="loggingEvent">the event being logged</param>
<remarks>
<para>
Write the exception string to the <see cref="T:System.IO.TextWriter"
/>.
The exception string is retrieved from <see cref="M:LoggingEvent.Get
ExceptionString()"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.IRawLayout">
<summary>
Interface for raw layout objects
</summary>
<remarks>
<para>
Interface used to format a <see cref="T:log4net.Core.LoggingEvent"/>
to an object.
</para>
<para>
This interface should not be confused with the
<see cref="T:log4net.Layout.ILayout"/> interface. This interface is
used in
only certain specialized situations where a raw object is
required rather than a formatted string. The <see cref="T:log4net.La
yout.ILayout"/>
is not generally useful than this interface.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.IRawLayout.Format(log4net.Core.LoggingEve
nt)">
<summary>
Implement this method to create your own layout format.
</summary>
<param name="loggingEvent">The event to format</param>
<returns>returns the formatted event</returns>
<remarks>
<para>
Implement this method to create your own layout format.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.Layout2RawLayoutAdapter">
<summary>
Adapts any <see cref="T:log4net.Layout.ILayout"/> to a <see cref="T:
log4net.Layout.IRawLayout"/>
</summary>
<remarks>
<para>
Where an <see cref="T:log4net.Layout.IRawLayout"/> is required this
adapter
allows a <see cref="T:log4net.Layout.ILayout"/> to be specified.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Layout.Layout2RawLayoutAdapter.m_layout">
<summary>
The layout to adapt
</summary>
</member>
<member name="M:log4net.Layout.Layout2RawLayoutAdapter.#ctor(log4net.Lay
out.ILayout)">
<summary>
Construct a new adapter
</summary>
<param name="layout">the layout to adapt</param>
<remarks>
<para>
Create the adapter for the specified <paramref name="layout"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.Layout2RawLayoutAdapter.Format(log4net.Co
re.LoggingEvent)">
<summary>
Format the logging event as an object.
</summary>
<param name="loggingEvent">The event to format</param>
<returns>returns the formatted event</returns>
<remarks>
<para>
Format the logging event as an object.
</para>
<para>
Uses the <see cref="T:log4net.Layout.ILayout"/> object supplied to
the constructor to perform the formatting.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.RawLayoutConverter">
<summary>
Type converter for the <see cref="T:log4net.Layout.IRawLayout"/> int
erface
</summary>
<remarks>
<para>
Used to convert objects to the <see cref="T:log4net.Layout.IRawLayou
t"/> interface.
Supports converting from the <see cref="T:log4net.Layout.ILayout"/>
interface to
the <see cref="T:log4net.Layout.IRawLayout"/> interface using the <s
ee cref="T:log4net.Layout.Layout2RawLayoutAdapter"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Util.TypeConverters.IConvertFrom">
<summary>
Interface supported by type converters
</summary>
<remarks>
<para>
This interface supports conversion from arbitrary types
to a single target type. See <see cref="T:log4net.Util.TypeConverter
s.TypeConverterAttribute"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.TypeConverters.IConvertFrom.CanConvertFrom(
System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Test if the <paramref name="sourceType"/> can be converted to the
type supported by this converter.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.IConvertFrom.ConvertFrom(Sys
tem.Object)">
<summary>
Convert the source object to the type supported by this object
</summary>
<param name="source">the object to convert</param>
<returns>the converted object</returns>
<remarks>
<para>
Converts the <paramref name="source"/> to the type supported
by this converter.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.RawLayoutConverter.CanConvertFrom(System.
Type)">
<summary>
Can the sourceType be converted to an <see cref="T:log4net.Layout.IR
awLayout"/>
</summary>
<param name="sourceType">the source to be to be converted</param>
<returns><c>true</c> if the source type can be converted to <see cre
f="T:log4net.Layout.IRawLayout"/></returns>
<remarks>
<para>
Test if the <paramref name="sourceType"/> can be converted to a
<see cref="T:log4net.Layout.IRawLayout"/>. Only <see cref="T:log4net
.Layout.ILayout"/> is supported
as the <paramref name="sourceType"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.RawLayoutConverter.ConvertFrom(System.Obj
ect)">
<summary>
Convert the value to a <see cref="T:log4net.Layout.IRawLayout"/> obj
ect
</summary>
<param name="source">the value to convert</param>
<returns>the <see cref="T:log4net.Layout.IRawLayout"/> object</retur
ns>
<remarks>
<para>
Convert the <paramref name="source"/> object to a
<see cref="T:log4net.Layout.IRawLayout"/> object. If the <paramref n
ame="source"/> object
is a <see cref="T:log4net.Layout.ILayout"/> then the <see cref="T:lo
g4net.Layout.Layout2RawLayoutAdapter"/>
is used to adapt between the two interfaces, otherwise an
exception is thrown.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.RawPropertyLayout">
<summary>
Extract the value of a property from the <see cref="T:log4net.Core.L
oggingEvent"/>
</summary>
<remarks>
<para>
Extract the value of a property from the <see cref="T:log4net.Core.L
oggingEvent"/>
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Layout.RawPropertyLayout.#ctor">
<summary>
Constructs a RawPropertyLayout
</summary>
</member>
<member name="M:log4net.Layout.RawPropertyLayout.Format(log4net.Core.Log
gingEvent)">
<summary>
Lookup the property for <see cref="P:log4net.Layout.RawPropertyLayou
t.Key"/>
</summary>
<param name="loggingEvent">The event to format</param>
<returns>returns property value</returns>
<remarks>
<para>
Looks up and returns the object value of the property
named <see cref="P:log4net.Layout.RawPropertyLayout.Key"/>. If there
is no property defined
with than name then <c>null</c> will be returned.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.RawPropertyLayout.Key">
<summary>
The name of the value to lookup in the LoggingEvent Properties colle
ction.
</summary>
<value>
Value to lookup in the LoggingEvent Properties collection
</value>
<remarks>
<para>
String name of the property to lookup in the <see cref="T:log4net.Co
re.LoggingEvent"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.RawTimeStampLayout">
<summary>
Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
</summary>
<remarks>
<para>
Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.RawTimeStampLayout.#ctor">
<summary>
Constructs a RawTimeStampLayout
</summary>
</member>
<member name="M:log4net.Layout.RawTimeStampLayout.Format(log4net.Core.Lo
ggingEvent)">
<summary>
Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <s
ee cref="T:System.DateTime"/>.
</summary>
<param name="loggingEvent">The event to format</param>
<returns>returns the time stamp</returns>
<remarks>
<para>
Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <s
ee cref="T:System.DateTime"/>.
</para>
<para>
The time stamp is in local time. To format the time stamp
in universal time use <see cref="T:log4net.Layout.RawUtcTimeStampLay
out"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.RawUtcTimeStampLayout">
<summary>
Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
</summary>
<remarks>
<para>
Extract the date from the <see cref="T:log4net.Core.LoggingEvent"/>
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.RawUtcTimeStampLayout.#ctor">
<summary>
Constructs a RawUtcTimeStampLayout
</summary>
</member>
<member name="M:log4net.Layout.RawUtcTimeStampLayout.Format(log4net.Core
.LoggingEvent)">
<summary>
Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <s
ee cref="T:System.DateTime"/>.
</summary>
<param name="loggingEvent">The event to format</param>
<returns>returns the time stamp</returns>
<remarks>
<para>
Gets the <see cref="P:log4net.Core.LoggingEvent.TimeStamp"/> as a <s
ee cref="T:System.DateTime"/>.
</para>
<para>
The time stamp is in universal time. To format the time stamp
in local time use <see cref="T:log4net.Layout.RawTimeStampLayout"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.SimpleLayout">
<summary>
A very simple layout
</summary>
<remarks>
<para>
SimpleLayout consists of the level of the log statement,
followed by " - " and then the log message itself. For example,
<code>
DEBUG - Hello world
</code>
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.SimpleLayout.#ctor">
<summary>
Constructs a SimpleLayout
</summary>
</member>
<member name="M:log4net.Layout.SimpleLayout.ActivateOptions">
<summary>
Initialize layout options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.SimpleLayout.Acti
vateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.SimpleLayout.ActivateOpt
ions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.SimpleLayout.ActivateOptions"/> must be
called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.SimpleLayout.Format(System.IO.TextWriter,
log4net.Core.LoggingEvent)">
<summary>
Produces a simple formatted output.
</summary>
<param name="loggingEvent">the event being logged</param>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<remarks>
<para>
Formats the event as the level of the even,
followed by " - " and then the log message itself. The
output is terminated by a newline.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.XmlLayout">
<summary>
Layout that formats the log events as XML elements.
</summary>
<remarks>
<para>
The output of the <see cref="T:log4net.Layout.XmlLayout"/> consists
of a series of
log4net:event elements. It does not output a complete well-formed X
ML
file. The output is designed to be included as an <em>external enti
ty</em>
in a separate file to form a correct XML file.
</para>
<para>
For example, if <c>abc</c> is the name of the file where
the <see cref="T:log4net.Layout.XmlLayout"/> output goes, then a we
ll-formed XML file would
be:
</para>
<code lang="XML">
&lt;?xml version="1.0" ?&gt;

&lt;!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [&lt;!ENTIT
Y data SYSTEM "abc"&gt;]&gt;

&lt;log4net:events version="1.2" xmlns:log4net="http://logging.apac
he.org/log4net/schemas/log4net-events-1.2&gt;
&amp;data;
&lt;/log4net:events&gt;
</code>
<para>
This approach enforces the independence of the <see cref="T:log4net
.Layout.XmlLayout"/>
and the appender where it is embedded.
</para>
<para>
The <c>version</c> attribute helps components to correctly
interpret output generated by <see cref="T:log4net.Layout.XmlLayout
"/>. The value of
this attribute should be "1.2" for release 1.2 and later.
</para>
<para>
Alternatively the <c>Header</c> and <c>Footer</c> properties can be
configured to output the correct XML header, open tag and close tag
.
When setting the <c>Header</c> and <c>Footer</c> properties it is e
ssential
that the underlying data store not be appendable otherwise the data
will become invalid XML.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Layout.XmlLayoutBase">
<summary>
Layout that formats the log events as XML elements.
</summary>
<remarks>
<para>
This is an abstract class that must be subclassed by an implementati
on
to conform to a specific schema.
</para>
<para>
Deriving classes must implement the <see cref="M:log4net.Layout.XmlL
ayoutBase.FormatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Layout.XmlLayoutBase.#ctor">
<summary>
Protected constructor to support subclasses
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Layout.XmlLay
outBase"/> class
with no location info.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayoutBase.#ctor(System.Boolean)">
<summary>
Protected constructor to support subclasses
</summary>
<remarks>
<para>
The <paramref name="locationInfo" /> parameter determines whether
location information will be output by the layout. If
<paramref name="locationInfo" /> is set to <c>true</c>, then the
file name and line number of the statement at the origin of the log
statement will be output.
</para>
<para>
If you are embedding this layout within an SMTPAppender
then make sure to set the <b>LocationInfo</b> option of that
appender as well.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayoutBase.ActivateOptions">
<summary>
Initialize layout options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.XmlLayoutBase.Act
ivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.XmlLayoutBase.ActivateOp
tions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.XmlLayoutBase.ActivateOptions"/> must be
called again.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayoutBase.Format(System.IO.TextWriter
,log4net.Core.LoggingEvent)">
<summary>
Produces a formatted string.
</summary>
<param name="loggingEvent">The event being logged.</param>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<remarks>
<para>
Format the <see cref="T:log4net.Core.LoggingEvent"/> and write it to
the <see cref="T:System.IO.TextWriter"/>.
</para>
<para>
This method creates an <see cref="T:System.Xml.XmlTextWriter"/> that
writes to the
<paramref name="writer"/>. The <see cref="T:System.Xml.XmlTextWriter
"/> is passed
to the <see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xm
l.XmlWriter,log4net.Core.LoggingEvent)"/> method. Subclasses should override the
<see cref="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWr
iter,log4net.Core.LoggingEvent)"/> method rather than this method.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayoutBase.FormatXml(System.Xml.XmlWri
ter,log4net.Core.LoggingEvent)">
<summary>
Does the actual writing of the XML.
</summary>
<param name="writer">The writer to use to output the event to.</para
m>
<param name="loggingEvent">The event to write.</param>
<remarks>
<para>
Subclasses should override this method to format
the <see cref="T:log4net.Core.LoggingEvent"/> as XML.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.XmlLayoutBase.m_locationInfo">
<summary>
Flag to indicate if location information should be included in
the XML events.
</summary>
</member>
<member name="F:log4net.Layout.XmlLayoutBase.m_invalidCharReplacement">
<summary>
The string to replace invalid chars with
</summary>
</member>
<member name="P:log4net.Layout.XmlLayoutBase.LocationInfo">
<summary>
Gets a value indicating whether to include location information in
the XML events.
</summary>
<value>
<c>true</c> if location information should be included in the XML
events; otherwise, <c>false</c>.
</value>
<remarks>
<para>
If <see cref="P:log4net.Layout.XmlLayoutBase.LocationInfo"/> is set
to <c>true</c>, then the file
name and line number of the statement at the origin of the log
statement will be output.
</para>
<para>
If you are embedding this layout within an <c>SMTPAppender</c>
then make sure to set the <b>LocationInfo</b> option of that
appender as well.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacement">
<summary>
The string to replace characters that can not be expressed in XML wi
th.
<remarks>
<para>
Not all characters may be expressed in XML. This property contains t
he
string to replace those that can not with. This defaults to a ?. Set
it
to the empty string to simply remove offending characters. For more
details on the allowed character ranges see http://www.w3.org/TR/REC
-xml/#charsets
Character replacement will occur in the log message, the property n
ames
and the property values.
</para>
</remarks>
</summary>
</member>
<member name="P:log4net.Layout.XmlLayoutBase.ContentType">
<summary>
Gets the content type output by this layout.
</summary>
<value>
As this is the XML layout, the value is always <c>"text/xml"</c>.
</value>
<remarks>
<para>
As this is the XML layout, the value is always <c>"text/xml"</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayout.#ctor">
<summary>
Constructs an XmlLayout
</summary>
</member>
<member name="M:log4net.Layout.XmlLayout.#ctor(System.Boolean)">
<summary>
Constructs an XmlLayout.
</summary>
<remarks>
<para>
The <b>LocationInfo</b> option takes a boolean value. By
default, it is set to false which means there will be no location
information output by this layout. If the the option is set to
true, then the file name and line number of the statement
at the origin of the log statement will be output.
</para>
<para>
If you are embedding this layout within an SmtpAppender
then make sure to set the <b>LocationInfo</b> option of that
appender as well.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayout.ActivateOptions">
<summary>
Initialize layout options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Layout.XmlLayout.Activat
eOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Layout.XmlLayout.ActivateOption
s"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Layout.XmlLayout.ActivateOptions"/> must be cal
led again.
</para>
<para>
Builds a cache of the element names
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayout.FormatXml(System.Xml.XmlWriter,
log4net.Core.LoggingEvent)">
<summary>
Does the actual writing of the XML.
</summary>
<param name="writer">The writer to use to output the event to.</para
m>
<param name="loggingEvent">The event to write.</param>
<remarks>
<para>
Override the base class <see cref="M:log4net.Layout.XmlLayoutBase.Fo
rmatXml(System.Xml.XmlWriter,log4net.Core.LoggingEvent)"/> method
to write the <see cref="T:log4net.Core.LoggingEvent"/> to the <see c
ref="T:System.Xml.XmlWriter"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Layout.XmlLayout.m_prefix">
<summary>
The prefix to use for all generated element names
</summary>
</member>
<member name="P:log4net.Layout.XmlLayout.Prefix">
<summary>
The prefix to use for all element names
</summary>
<remarks>
<para>
The default prefix is <b>log4net</b>. Set this property
to change the prefix. If the prefix is set to an empty string
then no prefix will be written.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.XmlLayout.Base64EncodeMessage">
<summary>
Set whether or not to base64 encode the message.
</summary>
<remarks>
<para>
By default the log message will be written as text to the xml
output. This can cause problems when the message contains binary
data. By setting this to true the contents of the message will be
base64 encoded. If this is set then invalid character replacement
(see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacemen
t"/>) will not be performed
on the log message.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.XmlLayout.Base64EncodeProperties">
<summary>
Set whether or not to base64 encode the property values.
</summary>
<remarks>
<para>
By default the properties will be written as text to the xml
output. This can cause problems when one or more properties contain
binary data. By setting this to true the values of the properties
will be base64 encoded. If this is set then invalid character replac
ement
(see <see cref="P:log4net.Layout.XmlLayoutBase.InvalidCharReplacemen
t"/>) will not be performed
on the property values.
</para>
</remarks>
</member>
<member name="T:log4net.Layout.XmlLayoutSchemaLog4j">
<summary>
Layout that formats the log events as XML elements compatible with t
he log4j schema
</summary>
<remarks>
<para>
Formats the log events according to the http://logging.apache.org/lo
g4j schema.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Layout.XmlLayoutSchemaLog4j.s_date1970">
<summary>
The 1st of January 1970 in UTC
</summary>
</member>
<member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor">
<summary>
Constructs an XMLLayoutSchemaLog4j
</summary>
</member>
<member name="M:log4net.Layout.XmlLayoutSchemaLog4j.#ctor(System.Boolean
)">
<summary>
Constructs an XMLLayoutSchemaLog4j.
</summary>
<remarks>
<para>
The <b>LocationInfo</b> option takes a boolean value. By
default, it is set to false which means there will be no location
information output by this layout. If the the option is set to
true, then the file name and line number of the statement
at the origin of the log statement will be output.
</para>
<para>
If you are embedding this layout within an SMTPAppender
then make sure to set the <b>LocationInfo</b> option of that
appender as well.
</para>
</remarks>
</member>
<member name="M:log4net.Layout.XmlLayoutSchemaLog4j.FormatXml(System.Xml
.XmlWriter,log4net.Core.LoggingEvent)">
<summary>
Actually do the writing of the xml
</summary>
<param name="writer">the writer to use</param>
<param name="loggingEvent">the event to write</param>
<remarks>
<para>
Generate XML that is compatible with the log4j schema.
</para>
</remarks>
</member>
<member name="P:log4net.Layout.XmlLayoutSchemaLog4j.Version">
<summary>
The version of the log4j schema to use.
</summary>
<remarks>
<para>
Only version 1.2 of the log4j schema is supported.
</para>
</remarks>
</member>
<member name="T:log4net.ObjectRenderer.DefaultRenderer">
<summary>
The default object Renderer.
</summary>
<remarks>
<para>
The default renderer supports rendering objects and collections to s
trings.
</para>
<para>
See the <see cref="M:log4net.ObjectRenderer.DefaultRenderer.RenderOb
ject(log4net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)"/> m
ethod for details of the output.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.ObjectRenderer.IObjectRenderer">
<summary>
Implement this interface in order to render objects as strings
</summary>
<remarks>
<para>
Certain types require special case conversion to
string form. This conversion is done by an object renderer.
Object renderers implement the <see cref="T:log4net.ObjectRenderer.I
ObjectRenderer"/>
interface.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.ObjectRenderer.IObjectRenderer.RenderObject(log4
net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
<summary>
Render the object <paramref name="obj"/> to a string
</summary>
<param name="rendererMap">The map used to lookup renderers</param>
<param name="obj">The object to render</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
Render the object <paramref name="obj"/> to a
string.
</para>
<para>
The <paramref name="rendererMap"/> parameter is
provided to lookup and render other objects. This is
very useful where <paramref name="obj"/> contains
nested objects of unknown type. The <see cref="M:RendererMap.FindAnd
Render(object, TextWriter)"/>
method can be used to render these objects.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.DefaultRenderer.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderObject(log4
net.ObjectRenderer.RendererMap,System.Object,System.IO.TextWriter)">
<summary>
Render the object <paramref name="obj"/> to a string
</summary>
<param name="rendererMap">The map used to lookup renderers</param>
<param name="obj">The object to render</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
Render the object <paramref name="obj"/> to a string.
</para>
<para>
The <paramref name="rendererMap"/> parameter is
provided to lookup and render other objects. This is
very useful where <paramref name="obj"/> contains
nested objects of unknown type. The <see cref="M:RendererMap.FindAnd
Render(object)"/>
method can be used to render these objects.
</para>
<para>
The default renderer supports rendering objects to strings as follow
s:
</para>
<list type="table">
<listheader>
<term>Value</term>
<description>Rendered String</description>
</listheader>
<item>
<term><c>null</c></term>
<description>
<para>"(null)"</para>
</description>
</item>
<item>
<term><see cref="T:System.Array"/></term>
<description>
<para>
For a one dimensional array this is the
array type name, an open brace, followed by a comma
separated list of the elements (using the appropriate
renderer), followed by a close brace.
</para>
<para>
For example: <c>int[] {1, 2, 3}</c>.
</para>
<para>
If the array is not one dimensional the
<c>Array.ToString()</c> is returned.
</para>
</description>
</item>
<item>
<term><see cref="T:System.Collections.IEnumerable"/>, <s
ee cref="T:System.Collections.ICollection"/> &amp; <see cref="T:System.Collectio
ns.IEnumerator"/></term>
<description>
<para>
Rendered as an open brace, followed by a comma
separated list of the elements (using the appropriate
renderer), followed by a close brace.
</para>
<para>
For example: <c>{a, b, c}</c>.
</para>
<para>
All collection classes that implement <see cref="T:Syste
m.Collections.ICollection"/> its subclasses,
or generic equivalents all implement the <see cref="T:Sy
stem.Collections.IEnumerable"/> interface.
</para>
</description>
</item>
<item>
<term><see cref="T:System.Collections.DictionaryEntry"/>
</term>
<description>
<para>
Rendered as the key, an equals sign ('='), and the value
(using the appropriate
renderer).
</para>
<para>
For example: <c>key=value</c>.
</para>
</description>
</item>
<item>
<term>other</term>
<description>
<para><c>Object.ToString()</c></para>
</description>
</item>
</list>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderArray(log4n
et.ObjectRenderer.RendererMap,System.Array,System.IO.TextWriter)">
<summary>
Render the array argument into a string
</summary>
<param name="rendererMap">The map used to lookup renderers</param>
<param name="array">the array to render</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
For a one dimensional array this is the
array type name, an open brace, followed by a comma
separated list of the elements (using the appropriate
renderer), followed by a close brace. For example:
<c>int[] {1, 2, 3}</c>.
</para>
<para>
If the array is not one dimensional the
<c>Array.ToString()</c> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderEnumerator(
log4net.ObjectRenderer.RendererMap,System.Collections.IEnumerator,System.IO.Text
Writer)">
<summary>
Render the enumerator argument into a string
</summary>
<param name="rendererMap">The map used to lookup renderers</param>
<param name="enumerator">the enumerator to render</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
Rendered as an open brace, followed by a comma
separated list of the elements (using the appropriate
renderer), followed by a close brace. For example:
<c>{a, b, c}</c>.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.DefaultRenderer.RenderDictionaryE
ntry(log4net.ObjectRenderer.RendererMap,System.Collections.DictionaryEntry,Syste
m.IO.TextWriter)">
<summary>
Render the DictionaryEntry argument into a string
</summary>
<param name="rendererMap">The map used to lookup renderers</param>
<param name="entry">the DictionaryEntry to render</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
Render the key, an equals sign ('='), and the value (using the appro
priate
renderer). For example: <c>key=value</c>.
</para>
</remarks>
</member>
<member name="T:log4net.ObjectRenderer.RendererMap">
<summary>
Map class objects to an <see cref="T:log4net.ObjectRenderer.IObjectR
enderer"/>.
</summary>
<remarks>
<para>
Maintains a mapping between types that require special
rendering and the <see cref="T:log4net.ObjectRenderer.IObjectRendere
r"/> that
is used to render them.
</para>
<para>
The <see cref="M:FindAndRender(object)"/> method is used to render a
n
<c>object</c> using the appropriate renderers defined in this map.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.#ctor">
<summary>
Default Constructor
</summary>
<remarks>
<para>
Default constructor.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.
Object)">
<summary>
Render <paramref name="obj"/> using the appropriate renderer.
</summary>
<param name="obj">the object to render to a string</param>
<returns>the object rendered as a string</returns>
<remarks>
<para>
This is a convenience method used to render an object to a string.
The alternative method <see cref="M:FindAndRender(object,TextWriter)
"/>
should be used when streaming output to a <see cref="T:System.IO.Tex
tWriter"/>.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.FindAndRender(System.
Object,System.IO.TextWriter)">
<summary>
Render <paramref name="obj"/> using the appropriate renderer.
</summary>
<param name="obj">the object to render to a string</param>
<param name="writer">The writer to render to</param>
<remarks>
<para>
Find the appropriate renderer for the type of the
<paramref name="obj"/> parameter. This is accomplished by calling th
e
<see cref="M:Get(Type)"/> method. Once a renderer is found, it is
applied on the object <paramref name="obj"/> and the result is retur
ned
as a <see cref="T:System.String"/>.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Object)">
<summary>
Gets the renderer for the specified object type
</summary>
<param name="obj">the object to lookup the renderer for</param>
<returns>the renderer for <paramref name="obj"/></returns>
<remarks>
<param>
Gets the renderer for the specified object type.
</param>
<param>
Syntactic sugar method that calls <see cref="M:Get(Type)"/>
with the type of the object parameter.
</param>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.Get(System.Type)">
<summary>
Gets the renderer for the specified type
</summary>
<param name="type">the type to lookup the renderer for</param>
<returns>the renderer for the specified type</returns>
<remarks>
<para>
Returns the renderer for the specified type.
If no specific renderer has been defined the
<see cref="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer"/> w
ill be returned.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.SearchTypeAndInterfac
es(System.Type)">
<summary>
Internal function to recursively search interfaces
</summary>
<param name="type">the type to lookup the renderer for</param>
<returns>the renderer for the specified type</returns>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.Clear">
<summary>
Clear the map of renderers
</summary>
<remarks>
<para>
Clear the custom renderers defined by using
<see cref="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4
net.ObjectRenderer.IObjectRenderer)"/>. The <see cref="P:log4net.ObjectRenderer.
RendererMap.DefaultRenderer"/>
cannot be removed.
</para>
</remarks>
</member>
<member name="M:log4net.ObjectRenderer.RendererMap.Put(System.Type,log4n
et.ObjectRenderer.IObjectRenderer)">
<summary>
Register an <see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> f
or <paramref name="typeToRender"/>.
</summary>
<param name="typeToRender">the type that will be rendered by <paramr
ef name="renderer"/></param>
<param name="renderer">the renderer for <paramref name="typeToRender
"/></param>
<remarks>
<para>
Register an object renderer for a specific source type.
This renderer will be returned from a call to <see cref="M:Get(Type)
"/>
specifying the same <paramref name="typeToRender"/> as an argument.
</para>
</remarks>
</member>
<member name="P:log4net.ObjectRenderer.RendererMap.DefaultRenderer">
<summary>
Get the default renderer instance
</summary>
<value>the default renderer</value>
<remarks>
<para>
Get the default renderer
</para>
</remarks>
</member>
<member name="T:log4net.Plugin.IPlugin">
<summary>
Interface implemented by logger repository plugins.
</summary>
<remarks>
<para>
Plugins define additional behavior that can be associated
with a <see cref="T:log4net.Repository.ILoggerRepository"/>.
The <see cref="T:log4net.Plugin.PluginMap"/> held by the <see cref="
P:log4net.Repository.ILoggerRepository.PluginMap"/>
property is used to store the plugins for a repository.
</para>
<para>
The <c>log4net.Config.PluginAttribute</c> can be used to
attach plugins to repositories created using configuration
attributes.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Plugin.IPlugin.Attach(log4net.Repository.ILogger
Repository)">
<summary>
Attaches the plugin to the specified <see cref="T:log4net.Repository
.ILoggerRepository"/>.
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that this plugin should be attached to.</param>
<remarks>
<para>
A plugin may only be attached to a single repository.
</para>
<para>
This method is called when the plugin is attached to the repository.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.IPlugin.Shutdown">
<summary>
Is called when the plugin is to shutdown.
</summary>
<remarks>
<para>
This method is called to notify the plugin that
it should stop operating and should detach from
the repository.
</para>
</remarks>
</member>
<member name="P:log4net.Plugin.IPlugin.Name">
<summary>
Gets the name of the plugin.
</summary>
<value>
The name of the plugin.
</value>
<remarks>
<para>
Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
keyed by name. Each plugin instance attached to a
repository must be a unique name.
</para>
</remarks>
</member>
<member name="T:log4net.Plugin.PluginCollection">
<summary>
A strongly-typed collection of <see cref="T:log4net.Plugin.IPlugin"/
> objects.
</summary>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Plugin.PluginCollection.ReadOnly(log4net.Plugin.
PluginCollection)">
<summary>
Creates a read-only wrapper for a <c>PluginCollection</c> instance.
</summary>
<param name="list">list to create a readonly wrapper arround</param>
<returns>
A <c>PluginCollection</c> wrapper that is read-only.
</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor">
<summary>
Initializes a new instance of the <c>PluginCollection</c> class
that is empty and has the default initial capacity.
</summary>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <c>PluginCollection</c> class
that has the specified initial capacity.
</summary>
<param name="capacity">
The number of elements that the new <c>PluginCollection</c> is initi
ally capable of storing.
</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.Plu
ginCollection)">
<summary>
Initializes a new instance of the <c>PluginCollection</c> class
that contains elements copied from the specified <c>PluginCollection
</c>.
</summary>
<param name="c">The <c>PluginCollection</c> whose elements are copie
d to the new collection.</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.IPl
ugin[])">
<summary>
Initializes a new instance of the <c>PluginCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Plugin.IPlugin"/> array.
</summary>
<param name="a">The <see cref="T:log4net.Plugin.IPlugin"/> array who
se elements are copied to the new list.</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor(System.Collections
.ICollection)">
<summary>
Initializes a new instance of the <c>PluginCollection</c> class
that contains elements copied from the specified <see cref="T:log4ne
t.Plugin.IPlugin"/> collection.
</summary>
<param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collect
ion whose elements are copied to the new list.</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.#ctor(log4net.Plugin.Plu
ginCollection.Tag)">
<summary>
Allow subclasses to avoid our default constructors
</summary>
<param name="tag"></param>
<exclude/>
</member>
<member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IP
lugin[])">
<summary>
Copies the entire <c>PluginCollection</c> to a one-dimensional
<see cref="T:log4net.Plugin.IPlugin"/> array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Plugin.
IPlugin"/> array to copy to.</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.CopyTo(log4net.Plugin.IP
lugin[],System.Int32)">
<summary>
Copies the entire <c>PluginCollection</c> to a one-dimensional
<see cref="T:log4net.Plugin.IPlugin"/> array, starting at the specif
ied index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:log4net.Plugin.
IPlugin"/> array to copy to.</param>
<param name="start">The zero-based index in <paramref name="array"/>
at which copying begins.</param>
</member>
<member name="M:log4net.Plugin.PluginCollection.Add(log4net.Plugin.IPlug
in)">
<summary>
Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the end of the <c>P
luginCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to be
added to the end of the <c>PluginCollection</c>.</param>
<returns>The index at which the value has been added.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.Clear">
<summary>
Removes all elements from the <c>PluginCollection</c>.
</summary>
</member>
<member name="M:log4net.Plugin.PluginCollection.Clone">
<summary>
Creates a shallow copy of the <see cref="T:log4net.Plugin.PluginColl
ection"/>.
</summary>
<returns>A new <see cref="T:log4net.Plugin.PluginCollection"/> with
a shallow copy of the collection data.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.Contains(log4net.Plugin.
IPlugin)">
<summary>
Determines whether a given <see cref="T:log4net.Plugin.IPlugin"/> is
in the <c>PluginCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to che
ck for.</param>
<returns><c>true</c> if <paramref name="item"/> is found in the <c>P
luginCollection</c>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.IndexOf(log4net.Plugin.I
Plugin)">
<summary>
Returns the zero-based index of the first occurrence of a <see cref=
"T:log4net.Plugin.IPlugin"/>
in the <c>PluginCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to loc
ate in the <c>PluginCollection</c>.</param>
<returns>
The zero-based index of the first occurrence of <paramref name="item
"/>
in the entire <c>PluginCollection</c>, if found; otherwise, -1.
</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.Insert(System.Int32,log4
net.Plugin.IPlugin)">
<summary>
Inserts an element into the <c>PluginCollection</c> at the specified
index.
</summary>
<param name="index">The zero-based index at which <paramref name="it
em"/> should be inserted.</param>
<param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to ins
ert.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Plugin.PluginCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.Remove(log4net.Plugin.IP
lugin)">
<summary>
Removes the first occurrence of a specific <see cref="T:log4net.Plug
in.IPlugin"/> from the <c>PluginCollection</c>.
</summary>
<param name="item">The <see cref="T:log4net.Plugin.IPlugin"/> to rem
ove from the <c>PluginCollection</c>.</param>
<exception cref="T:System.ArgumentException">
The specified <see cref="T:log4net.Plugin.IPlugin"/> was not found i
n the <c>PluginCollection</c>.
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.RemoveAt(System.Int32)">
<summary>
Removes the element at the specified index of the <c>PluginCollectio
n</c>.
</summary>
<param name="index">The zero-based index of the element to remove.</
param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero.</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Plugin.PluginCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.GetEnumerator">
<summary>
Returns an enumerator that can iterate through the <c>PluginCollecti
on</c>.
</summary>
<returns>An <see cref="T:log4net.Plugin.PluginCollection.Enumerator"
/> for the entire <c>PluginCollection</c>.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.
PluginCollection)">
<summary>
Adds the elements of another <c>PluginCollection</c> to the current
<c>PluginCollection</c>.
</summary>
<param name="x">The <c>PluginCollection</c> whose elements should be
added to the end of the current <c>PluginCollection</c>.</param>
<returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"
/> of the <c>PluginCollection</c>.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.AddRange(log4net.Plugin.
IPlugin[])">
<summary>
Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> array
to the current <c>PluginCollection</c>.
</summary>
<param name="x">The <see cref="T:log4net.Plugin.IPlugin"/> array who
se elements should be added to the end of the <c>PluginCollection</c>.</param>
<returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"
/> of the <c>PluginCollection</c>.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.AddRange(System.Collecti
ons.ICollection)">
<summary>
Adds the elements of a <see cref="T:log4net.Plugin.IPlugin"/> collec
tion to the current <c>PluginCollection</c>.
</summary>
<param name="col">The <see cref="T:log4net.Plugin.IPlugin"/> collect
ion whose elements should be added to the end of the <c>PluginCollection</c>.</p
aram>
<returns>The new <see cref="P:log4net.Plugin.PluginCollection.Count"
/> of the <c>PluginCollection</c>.</returns>
</member>
<member name="M:log4net.Plugin.PluginCollection.TrimToSize">
<summary>
Sets the capacity to the actual number of elements.
</summary>
</member>
<member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int
32)">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero.</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Plugin.PluginCollection.Count"/>.</para>
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.ValidateIndex(System.Int
32,System.Boolean)">
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="i"/> is less than zero.</para>
<para>-or-</para>
<para><paramref name="i"/> is equal to or greater than <see cref="P:
log4net.Plugin.PluginCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Plugin.PluginCollection.Count">
<summary>
Gets the number of elements actually contained in the <c>PluginColle
ction</c>.
</summary>
</member>
<member name="P:log4net.Plugin.PluginCollection.IsSynchronized">
<summary>
Gets a value indicating whether access to the collection is synchron
ized (thread-safe).
</summary>
<returns>true if access to the ICollection is synchronized (thread-s
afe); otherwise, false.</returns>
</member>
<member name="P:log4net.Plugin.PluginCollection.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the collect
ion.
</summary>
<value>
An object that can be used to synchronize access to the collection.
</value>
</member>
<member name="P:log4net.Plugin.PluginCollection.Item(System.Int32)">
<summary>
Gets or sets the <see cref="T:log4net.Plugin.IPlugin"/> at the speci
fied index.
</summary>
<value>
The <see cref="T:log4net.Plugin.IPlugin"/> at the specified index.
</value>
<param name="index">The zero-based index of the element to get or se
t.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<para><paramref name="index"/> is less than zero.</para>
<para>-or-</para>
<para><paramref name="index"/> is equal to or greater than <see cref
="P:log4net.Plugin.PluginCollection.Count"/>.</para>
</exception>
</member>
<member name="P:log4net.Plugin.PluginCollection.IsFixedSize">
<summary>
Gets a value indicating whether the collection has a fixed size.
</summary>
<value><c>true</c> if the collection has a fixed size; otherwise, <c
>false</c>. The default is <c>false</c>.</value>
</member>
<member name="P:log4net.Plugin.PluginCollection.IsReadOnly">
<summary>
Gets a value indicating whether the IList is read-only.
</summary>
<value><c>true</c> if the collection is read-only; otherwise, <c>fal
se</c>. The default is <c>false</c>.</value>
</member>
<member name="P:log4net.Plugin.PluginCollection.Capacity">
<summary>
Gets or sets the number of elements the <c>PluginCollection</c> can
contain.
</summary>
<value>
The number of elements the <c>PluginCollection</c> can contain.
</value>
</member>
<member name="T:log4net.Plugin.PluginCollection.IPluginCollectionEnumera
tor">
<summary>
Supports type-safe iteration over a <see cref="T:log4net.Plugin.Plug
inCollection"/>.
</summary>
<exclude/>
</member>
<member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumera
tor.MoveNext">
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.IPluginCollectionEnumera
tor.Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Plugin.PluginCollection.IPluginCollectionEnumera
tor.Current">
<summary>
Gets the current element in the collection.
</summary>
</member>
<member name="T:log4net.Plugin.PluginCollection.Tag">
<summary>
Type visible only to our subclasses
Used to access protected constructor
</summary>
<exclude/>
</member>
<member name="F:log4net.Plugin.PluginCollection.Tag.Default">
<summary>
A value
</summary>
</member>
<member name="T:log4net.Plugin.PluginCollection.Enumerator">
<summary>
Supports simple iteration over a <see cref="T:log4net.Plugin.PluginC
ollection"/>.
</summary>
<exclude/>
</member>
<member name="M:log4net.Plugin.PluginCollection.Enumerator.#ctor(log4net
.Plugin.PluginCollection)">
<summary>
Initializes a new instance of the <c>Enumerator</c> class.
</summary>
<param name="tc"></param>
</member>
<member name="M:log4net.Plugin.PluginCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element in the collection.
</summary>
<returns>
<c>true</c> if the enumerator was successfully advanced to the next
element;
<c>false</c> if the enumerator has passed the end of the collection.
</returns>
<exception cref="T:System.InvalidOperationException">
The collection was modified after the enumerator was created.
</exception>
</member>
<member name="M:log4net.Plugin.PluginCollection.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, before the first elemen
t in the collection.
</summary>
</member>
<member name="P:log4net.Plugin.PluginCollection.Enumerator.Current">
<summary>
Gets the current element in the collection.
</summary>
<value>
The current element in the collection.
</value>
</member>
<member name="T:log4net.Plugin.PluginCollection.ReadOnlyPluginCollection
">
<exclude/>
</member>
<member name="T:log4net.Plugin.PluginMap">
<summary>
Map of repository plugins.
</summary>
<remarks>
<para>
This class is a name keyed map of the plugins that are
attached to a repository.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Plugin.PluginMap.#ctor(log4net.Repository.ILogge
rRepository)">
<summary>
Constructor
</summary>
<param name="repository">The repository that the plugins should be a
ttached to.</param>
<remarks>
<para>
Initialize a new instance of the <see cref="T:log4net.Plugin.PluginM
ap"/> class with a
repository that the plugins should be attached to.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.PluginMap.Add(log4net.Plugin.IPlugin)">
<summary>
Adds a <see cref="T:log4net.Plugin.IPlugin"/> to the map.
</summary>
<param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to a
dd to the map.</param>
<remarks>
<para>
The <see cref="T:log4net.Plugin.IPlugin"/> will be attached to the r
epository when added.
</para>
<para>
If there already exists a plugin with the same name
attached to the repository then the old plugin will
be <see cref="M:log4net.Plugin.IPlugin.Shutdown"/> and replaced with
the new plugin.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.PluginMap.Remove(log4net.Plugin.IPlugin)"
>
<summary>
Removes a <see cref="T:log4net.Plugin.IPlugin"/> from the map.
</summary>
<param name="plugin">The <see cref="T:log4net.Plugin.IPlugin"/> to r
emove from the map.</param>
<remarks>
<para>
Remove a specific plugin from this map.
</para>
</remarks>
</member>
<member name="P:log4net.Plugin.PluginMap.Item(System.String)">
<summary>
Gets a <see cref="T:log4net.Plugin.IPlugin"/> by name.
</summary>
<param name="name">The name of the <see cref="T:log4net.Plugin.IPlug
in"/> to lookup.</param>
<returns>
The <see cref="T:log4net.Plugin.IPlugin"/> from the map with the nam
e specified, or
<c>null</c> if no plugin is found.
</returns>
<remarks>
<para>
Lookup a plugin by name. If the plugin is not found <c>null</c>
will be returned.
</para>
</remarks>
</member>
<member name="P:log4net.Plugin.PluginMap.AllPlugins">
<summary>
Gets all possible plugins as a list of <see cref="T:log4net.Plugin.I
Plugin"/> objects.
</summary>
<value>All possible plugins as a list of <see cref="T:log4net.Plugin
.IPlugin"/> objects.</value>
<remarks>
<para>
Get a collection of all the plugins defined in this map.
</para>
</remarks>
</member>
<member name="T:log4net.Plugin.PluginSkeleton">
<summary>
Base implementation of <see cref="T:log4net.Plugin.IPlugin"/>
</summary>
<remarks>
<para>
Default abstract implementation of the <see cref="T:log4net.Plugin.I
Plugin"/>
interface. This base class can be used by implementors
of the <see cref="T:log4net.Plugin.IPlugin"/> interface.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Plugin.PluginSkeleton.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="name">the name of the plugin</param>
<remarks>
Initializes a new Plugin with the specified name.
</remarks>
</member>
<member name="M:log4net.Plugin.PluginSkeleton.Attach(log4net.Repository.
ILoggerRepository)">
<summary>
Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRep
ository"/>.
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that this plugin should be attached to.</param>
<remarks>
<para>
A plugin may only be attached to a single repository.
</para>
<para>
This method is called when the plugin is attached to the repository.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.PluginSkeleton.Shutdown">
<summary>
Is called when the plugin is to shutdown.
</summary>
<remarks>
<para>
This method is called to notify the plugin that
it should stop operating and should detach from
the repository.
</para>
</remarks>
</member>
<member name="F:log4net.Plugin.PluginSkeleton.m_name">
<summary>
The name of this plugin.
</summary>
</member>
<member name="F:log4net.Plugin.PluginSkeleton.m_repository">
<summary>
The repository this plugin is attached to.
</summary>
</member>
<member name="P:log4net.Plugin.PluginSkeleton.Name">
<summary>
Gets or sets the name of the plugin.
</summary>
<value>
The name of the plugin.
</value>
<remarks>
<para>
Plugins are stored in the <see cref="T:log4net.Plugin.PluginMap"/>
keyed by name. Each plugin instance attached to a
repository must be a unique name.
</para>
<para>
The name of the plugin must not change one the
plugin has been attached to a repository.
</para>
</remarks>
</member>
<member name="P:log4net.Plugin.PluginSkeleton.LoggerRepository">
<summary>
The repository for this plugin
</summary>
<value>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that this p
lugin is attached to.
</value>
<remarks>
<para>
Gets or sets the <see cref="T:log4net.Repository.ILoggerRepository"/
> that this plugin is
attached to.
</para>
</remarks>
</member>
<member name="T:log4net.Plugin.RemoteLoggingServerPlugin">
<summary>
Plugin that listens for events from the <see cref="T:log4net.Appende
r.RemotingAppender"/>
</summary>
<remarks>
<para>
This plugin publishes an instance of <see cref="T:log4net.Appender.R
emotingAppender.IRemoteLoggingSink"/>
on a specified <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin
.SinkUri"/>. This listens for logging events delivered from
a remote <see cref="T:log4net.Appender.RemotingAppender"/>.
</para>
<para>
When an event is received it is relogged within the attached reposit
ory
as if it had been raised locally.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Plugin.Remote
LoggingServerPlugin"/> class.
</para>
<para>
The <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/>
property must be set.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.#ctor(System.St
ring)">
<summary>
Construct with sink Uri.
</summary>
<param name="sinkUri">The name to publish the sink under in the remo
ting infrastructure.
See <see cref="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri"/>
for more details.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Plugin.Remote
LoggingServerPlugin"/> class
with specified name.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Attach(log4net.
Repository.ILoggerRepository)">
<summary>
Attaches this plugin to a <see cref="T:log4net.Repository.ILoggerRep
ository"/>.
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that this plugin should be attached to.</param>
<remarks>
<para>
A plugin may only be attached to a single repository.
</para>
<para>
This method is called when the plugin is attached to the repository.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.Shutdown">
<summary>
Is called when the plugin is to shutdown.
</summary>
<remarks>
<para>
When the plugin is shutdown the remote logging
sink is disconnected.
</para>
</remarks>
</member>
<member name="F:log4net.Plugin.RemoteLoggingServerPlugin.declaringType">
<summary>
The fully qualified type of the RemoteLoggingServerPlugin class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Plugin.RemoteLoggingServerPlugin.SinkUri">
<summary>
Gets or sets the URI of this sink.
</summary>
<value>
The URI of this sink.
</value>
<remarks>
<para>
This is the name under which the object is marshaled.
<see cref="M:RemotingServices.Marshal(MarshalByRefObject,String,Type
)"/>
</para>
</remarks>
</member>
<member name="T:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSi
nkImpl">
<summary>
Delivers <see cref="T:log4net.Core.LoggingEvent"/> objects to a remo
te sink.
</summary>
<remarks>
<para>
Internal class used to listen for logging events
and deliver them to the local repository.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSi
nkImpl.#ctor(log4net.Repository.ILoggerRepository)">
<summary>
Constructor
</summary>
<param name="repository">The repository to log to.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Plugin.Remote
LoggingServerPlugin.RemoteLoggingSinkImpl"/> for the
specified <see cref="T:log4net.Repository.ILoggerRepository"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSi
nkImpl.LogEvents(log4net.Core.LoggingEvent[])">
<summary>
Logs the events to the repository.
</summary>
<param name="events">The events to log.</param>
<remarks>
<para>
The events passed are logged to the <see cref="T:log4net.Repository.
ILoggerRepository"/>
</para>
</remarks>
</member>
<member name="M:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSi
nkImpl.InitializeLifetimeService">
<summary>
Obtains a lifetime service object to control the lifetime
policy for this instance.
</summary>
<returns><c>null</c> to indicate that this instance should live fore
ver.</returns>
<remarks>
<para>
Obtains a lifetime service object to control the lifetime
policy for this instance. This object should live forever
therefore this implementation returns <c>null</c>.
</para>
</remarks>
</member>
<member name="F:log4net.Plugin.RemoteLoggingServerPlugin.RemoteLoggingSi
nkImpl.m_repository">
<summary>
The underlying <see cref="T:log4net.Repository.ILoggerRepository"/>
that events should
be logged to.
</summary>
</member>
<member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory">
<summary>
Default implementation of <see cref="T:log4net.Repository.Hierarchy.
ILoggerFactory"/>
</summary>
<remarks>
<para>
This default implementation of the <see cref="T:log4net.Repository.H
ierarchy.ILoggerFactory"/>
interface is used to create the default subclass
of the <see cref="T:log4net.Repository.Hierarchy.Logger"/> object.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Repository.Hierarchy.ILoggerFactory">
<summary>
Interface abstracts creation of <see cref="T:log4net.Repository.Hier
archy.Logger"/> instances
</summary>
<remarks>
<para>
This interface is used by the <see cref="T:log4net.Repository.Hierar
chy.Hierarchy"/> to
create new <see cref="T:log4net.Repository.Hierarchy.Logger"/> objec
ts.
</para>
<para>
The <see cref="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateL
ogger(log4net.Repository.ILoggerRepository,System.String)"/> method is called
to create a named <see cref="T:log4net.Repository.Hierarchy.Logger"/
>.
</para>
<para>
Implement this interface to create new subclasses of <see cref="T:lo
g4net.Repository.Hierarchy.Logger"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.Hierarchy.ILoggerFactory.CreateLogger
(log4net.Repository.ILoggerRepository,System.String)">
<summary>
Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that will own the <see cref="T:log4net.Repository.Hierarchy.Logger
"/>.</param>
<param name="name">The name of the <see cref="T:log4net.Repository.H
ierarchy.Logger"/>.</param>
<returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance for the specified name.</returns>
<remarks>
<para>
Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance with the
specified name.
</para>
<para>
Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
to create
new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instan
ces.
</para>
<para>
If the <paramref name="name"/> is <c>null</c> then the root logger
must be returned.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.#ctor"
>
<summary>
Default constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.DefaultLoggerFactory"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.Create
Logger(log4net.Repository.ILoggerRepository,System.String)">
<summary>
Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance
</summary>
<param name="repository">The <see cref="T:log4net.Repository.ILogger
Repository"/> that will own the <see cref="T:log4net.Repository.Hierarchy.Logger
"/>.</param>
<param name="name">The name of the <see cref="T:log4net.Repository.H
ierarchy.Logger"/>.</param>
<returns>The <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance for the specified name.</returns>
<remarks>
<para>
Create a new <see cref="T:log4net.Repository.Hierarchy.Logger"/> ins
tance with the
specified name.
</para>
<para>
Called by the <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
to create
new named <see cref="T:log4net.Repository.Hierarchy.Logger"/> instan
ces.
</para>
<para>
If the <paramref name="name"/> is <c>null</c> then the root logger
must be returned.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.DefaultLoggerFactory.Logger
Impl">
<summary>
Default internal subclass of <see cref="T:log4net.Repository.Hierarc
hy.Logger"/>
</summary>
<remarks>
<para>
This subclass has no additional behavior over the
<see cref="T:log4net.Repository.Hierarchy.Logger"/> class but does a
llow instances
to be created.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.Logger">
<summary>
Implementation of <see cref="T:log4net.Core.ILogger"/> used by <see
cref="P:log4net.Repository.Hierarchy.Logger.Hierarchy"/>
</summary>
<remarks>
<para>
Internal class used to provide implementation of <see cref="T:log4ne
t.Core.ILogger"/>
interface. Applications should use <see cref="T:log4net.LogManager"/
> to get
logger instances.
</para>
<para>
This is one of the central classes in the log4net implementation. On
e of the
distinctive features of log4net are hierarchical loggers and their
evaluation. The <see cref="P:log4net.Repository.Hierarchy.Logger.Hie
rarchy"/> organizes the <see cref="T:log4net.Repository.Hierarchy.Logger"/>
instances into a rooted tree hierarchy.
</para>
<para>
The <see cref="T:log4net.Repository.Hierarchy.Logger"/> class is abs
tract. Only concrete subclasses of
<see cref="T:log4net.Repository.Hierarchy.Logger"/> can be created.
The <see cref="T:log4net.Repository.Hierarchy.ILoggerFactory"/>
is used to create instances of this type for the <see cref="P:log4ne
t.Repository.Hierarchy.Logger.Hierarchy"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Aspi Havewala</author>
<author>Douglas de la Torre</author>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.#ctor(System.String)
">
<summary>
This constructor created a new <see cref="T:log4net.Repository.Hiera
rchy.Logger"/> instance and
sets its name.
</summary>
<param name="name">The name of the <see cref="T:log4net.Repository.H
ierarchy.Logger"/>.</param>
<remarks>
<para>
This constructor is protected and designed to be used by
a subclass that is not abstract.
</para>
<para>
Loggers are constructed by <see cref="T:log4net.Repository.Hierarchy
.ILoggerFactory"/>
objects. See <see cref="T:log4net.Repository.Hierarchy.DefaultLogger
Factory"/> for the default
logger creator.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.AddAppender(log4net.
Appender.IAppender)">
<summary>
Add <paramref name="newAppender"/> to the list of appenders of this
Logger instance.
</summary>
<param name="newAppender">An appender to add to this logger</param>
<remarks>
<para>
Add <paramref name="newAppender"/> to the list of appenders of this
Logger instance.
</para>
<para>
If <paramref name="newAppender"/> is already in the list of
appenders, then it won't be added again.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.GetAppender(System.S
tring)">
<summary>
Look for the appender named as <c>name</c>
</summary>
<param name="name">The name of the appender to lookup</param>
<returns>The appender with the name specified, or <c>null</c>.</retu
rns>
<remarks>
<para>
Returns the named appender, or null if the appender is not found.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.RemoveAllAppenders">
<summary>
Remove all previously added appenders from this Logger instance.
</summary>
<remarks>
<para>
Remove all previously added appenders from this Logger instance.
</para>
<para>
This is useful when re-reading configuration information.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(log4n
et.Appender.IAppender)">
<summary>
Remove the appender passed as parameter form the list of appenders.
</summary>
<param name="appender">The appender to remove</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
Remove the appender passed as parameter form the list of appenders.
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.RemoveAppender(Syste
m.String)">
<summary>
Remove the appender passed as parameter form the list of appenders.
</summary>
<param name="name">The name of the appender to remove</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
Remove the named appender passed as parameter form the list of appen
ders.
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.Log(System.Type,log4
net.Core.Level,System.Object,System.Exception)">
<summary>
This generic form is intended to be used by wrappers.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="level">The level of the message to be logged.</param>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Generate a logging event for the specified <paramref name="level"/>
using
the <paramref name="message"/> and <paramref name="exception"/>.
</para>
<para>
This method must not throw any exception to the caller.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.Log
gingEvent)">
<summary>
This is the most generic printing method that is intended to be used

by wrappers.
</summary>
<param name="logEvent">The event being logged.</param>
<remarks>
<para>
Logs the specified logging event through this logger.
</para>
<para>
This method must not throw any exception to the caller.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.IsEnabledFor(log4net
.Core.Level)">
<summary>
Checks if this logger is enabled for a given <see cref="P:log4net.Re
pository.Hierarchy.Logger.Level"/> passed as parameter.
</summary>
<param name="level">The level to check.</param>
<returns>
<c>true</c> if this logger is enabled for <c>level</c>, otherwise <c
>false</c>.
</returns>
<remarks>
<para>
Test if this logger is going to log events of the specified <paramre
f name="level"/>.
</para>
<para>
This method must not throw any exception to the caller.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.CallAppenders(log4ne
t.Core.LoggingEvent)">
<summary>
Deliver the <see cref="T:log4net.Core.LoggingEvent"/> to the attache
d appenders.
</summary>
<param name="loggingEvent">The event to log.</param>
<remarks>
<para>
Call the appenders in the hierarchy starting at
<c>this</c>. If no appenders could be found, emit a
warning.
</para>
<para>
This method calls all the appenders inherited from the
hierarchy circumventing any evaluation of whether to log or not
to log the particular log request.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.CloseNestedAppenders
">
<summary>
Closes all attached appenders implementing the <see cref="T:log4net.
Core.IAppenderAttachable"/> interface.
</summary>
<remarks>
<para>
Used to ensure that the appenders are correctly shutdown.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.Log(log4net.Core.Lev
el,System.Object,System.Exception)">
<summary>
This is the most generic printing method. This generic form is inten
ded to be used by wrappers
</summary>
<param name="level">The level of the message to be logged.</param>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Generate a logging event for the specified <paramref name="level"/>
using
the <paramref name="message"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(System.Typ
e,log4net.Core.Level,System.Object,System.Exception)">
<summary>
Creates a new logging event and logs the event without further check
s.
</summary>
<param name="callerStackBoundaryDeclaringType">The declaring type of
the method that is
the stack boundary into the logging system for this call.</param>
<param name="level">The level of the message to be logged.</param>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
Generates a logging event and delivers it to the attached
appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Logger.ForcedLog(log4net.Co
re.LoggingEvent)">
<summary>
Creates a new logging event and logs the event without further check
s.
</summary>
<param name="logEvent">The event being logged.</param>
<remarks>
<para>
Delivers the logging event to the attached appenders.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.declaringType">
<summary>
The fully qualified type of the Logger class.
</summary>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_name">
<summary>
The name of this logger.
</summary>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_level">
<summary>
The assigned level of this logger.
</summary>
<remarks>
<para>
The <c>level</c> variable need not be
assigned a value in which case it is inherited
form the hierarchy.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_parent">
<summary>
The parent of this logger.
</summary>
<remarks>
<para>
The parent of this logger.
All loggers have at least one ancestor which is the root logger.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_hierarchy">
<summary>
Loggers need to know what Hierarchy they are in.
</summary>
<remarks>
<para>
Loggers need to know what Hierarchy they are in.
The hierarchy that this logger is a member of is stored
here.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_appenderAttachedIm
pl">
<summary>
Helper implementation of the <see cref="T:log4net.Core.IAppenderAtta
chable"/> interface
</summary>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_additive">
<summary>
Flag indicating if child loggers inherit their parents appenders
</summary>
<remarks>
<para>
Additivity is set to true by default, that is children inherit
the appenders of their ancestors by default. If this variable is
set to <c>false</c> then the appenders found in the
ancestors of this logger are not used. However, the children
of this logger will inherit its appenders, unless the children
have their additivity flag set to <c>false</c> too. See
the user manual for more details.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Logger.m_appenderLock">
<summary>
Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl
</summary>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Parent">
<summary>
Gets or sets the parent logger in the hierarchy.
</summary>
<value>
The parent logger in the hierarchy.
</value>
<remarks>
<para>
Part of the Composite pattern that makes the hierarchy.
The hierarchy is parent linked rather than child linked.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Additivity">
<summary>
Gets or sets a value indicating if child loggers inherit their paren
t's appenders.
</summary>
<value>
<c>true</c> if child loggers inherit their parent's appenders.
</value>
<remarks>
<para>
Additivity is set to <c>true</c> by default, that is children inheri
t
the appenders of their ancestors by default. If this variable is
set to <c>false</c> then the appenders found in the
ancestors of this logger are not used. However, the children
of this logger will inherit its appenders, unless the children
have their additivity flag set to <c>false</c> too. See
the user manual for more details.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.EffectiveLevel">
<summary>
Gets the effective level for this logger.
</summary>
<returns>The nearest level in the logger hierarchy.</returns>
<remarks>
<para>
Starting from this logger, searches the logger hierarchy for a
non-null level and returns it. Otherwise, returns the level of the
root logger.
</para>
<para>The Logger class is designed so that this method executes as
quickly as possible.</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Hierarchy">
<summary>
Gets or sets the <see cref="P:log4net.Repository.Hierarchy.Logger.Hi
erarchy"/> where this
<c>Logger</c> instance is attached to.
</summary>
<value>The hierarchy that this logger belongs to.</value>
<remarks>
<para>
This logger must be attached to a single <see cref="P:log4net.Reposi
tory.Hierarchy.Logger.Hierarchy"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Level">
<summary>
Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.
Logger.Level"/>, if any, for this Logger.
</summary>
<value>
The <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/> of thi
s logger.
</value>
<remarks>
<para>
The assigned <see cref="P:log4net.Repository.Hierarchy.Logger.Level"
/> can be <c>null</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Appenders">
<summary>
Get the appenders contained in this logger as an
<see cref="T:System.Collections.ICollection"/>.
</summary>
<returns>A collection of the appenders in this logger</returns>
<remarks>
<para>
Get the appenders contained in this logger as an
<see cref="T:System.Collections.ICollection"/>. If no appenders
can be found, then a <see cref="T:log4net.Util.EmptyCollection"/> is
returned.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Name">
<summary>
Gets the logger name.
</summary>
<value>
The name of the logger.
</value>
<remarks>
<para>
The name of this logger
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Logger.Repository">
<summary>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where
this
<c>Logger</c> instance is attached to.
</summary>
<value>
The <see cref="T:log4net.Repository.ILoggerRepository"/> that this l
ogger belongs to.
</value>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> where
this
<c>Logger</c> instance is attached to.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.DefaultLoggerFactory.Logger
Impl.#ctor(System.String)">
<summary>
Construct a new Logger
</summary>
<param name="name">the name of the logger</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.DefaultLoggerFactory.LoggerImpl"/> class
with the specified name.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.LoggerCreationEventHandler"
>
<summary>
Delegate used to handle logger creation event notifications.
</summary>
<param name="sender">The <see cref="T:log4net.Repository.Hierarchy.H
ierarchy"/> in which the <see cref="T:log4net.Repository.Hierarchy.Logger"/> has
been created.</param>
<param name="e">The <see cref="T:log4net.Repository.Hierarchy.Logger
CreationEventArgs"/> event args that hold the <see cref="T:log4net.Repository.Hi
erarchy.Logger"/> instance that has been created.</param>
<remarks>
<para>
Delegate used to handle logger creation event notifications.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.LoggerCreationEventArgs">
<summary>
Provides data for the <see cref="E:log4net.Repository.Hierarchy.Hier
archy.LoggerCreatedEvent"/> event.
</summary>
<remarks>
<para>
A <see cref="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedE
vent"/> event is raised every time a
<see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Lo
gger"/> is created.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.LoggerCreationEventArgs.m_l
og">
<summary>
The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArg
s.Logger"/> created
</summary>
</member>
<member name="M:log4net.Repository.Hierarchy.LoggerCreationEventArgs.#ct
or(log4net.Repository.Hierarchy.Logger)">
<summary>
Constructor
</summary>
<param name="log">The <see cref="P:log4net.Repository.Hierarchy.Logg
erCreationEventArgs.Logger"/> that has been created.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.LoggerCreationEventArgs"/> event argument
class,with the specified <see cref="P:log4net.Repository.Hierarchy.L
oggerCreationEventArgs.Logger"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.LoggerCreationEventArgs.Log
ger">
<summary>
Gets the <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEve
ntArgs.Logger"/> that has been created.
</summary>
<value>
The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArg
s.Logger"/> that has been created.
</value>
<remarks>
<para>
The <see cref="P:log4net.Repository.Hierarchy.LoggerCreationEventArg
s.Logger"/> that has been created.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.Hierarchy">
<summary>
Hierarchical organization of loggers
</summary>
<remarks>
<para>
<i>The casual user should not have to deal with this class
directly.</i>
</para>
<para>
This class is specialized in retrieving loggers by name and
also maintaining the logger hierarchy. Implements the
<see cref="T:log4net.Repository.ILoggerRepository"/> interface.
</para>
<para>
The structure of the logger hierarchy is maintained by the
<see cref="M:GetLogger(string)"/> method. The hierarchy is such that
children
link to their parent but parents do not have any references to their
children. Moreover, loggers can be instantiated in any order, in
particular descendant before ancestor.
</para>
<para>
In case a descendant is created before a particular ancestor,
then it creates a provision node for the ancestor and adds itself
to the provision node. Other descendants of the same ancestor add
themselves to the previously created provision node.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Repository.LoggerRepositorySkeleton">
<summary>
Base implementation of <see cref="T:log4net.Repository.ILoggerReposi
tory"/>
</summary>
<remarks>
<para>
Default abstract implementation of the <see cref="T:log4net.Reposito
ry.ILoggerRepository"/> interface.
</para>
<para>
Skeleton implementation of the <see cref="T:log4net.Repository.ILogg
erRepository"/> interface.
All <see cref="T:log4net.Repository.ILoggerRepository"/> types can e
xtend this type.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Repository.ILoggerRepository">
<summary>
Interface implemented by logger repositories.
</summary>
<remarks>
<para>
This interface is implemented by logger repositories. e.g.
<see cref="N:log4net.Repository.Hierarchy"/>.
</para>
<para>
This interface is used by the <see cref="T:log4net.LogManager"/>
to obtain <see cref="T:log4net.ILog"/> interfaces.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.ILoggerRepository.Exists(System.Strin
g)">
<summary>
Check if the named logger exists in the repository. If so return
its reference, otherwise returns <c>null</c>.
</summary>
<param name="name">The name of the logger to lookup</param>
<returns>The Logger object with the name specified</returns>
<remarks>
<para>
If the names logger exists it is returned, otherwise
<c>null</c> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.GetCurrentLoggers">
<summary>
Returns all the currently defined loggers as an Array.
</summary>
<returns>All the defined loggers</returns>
<remarks>
<para>
Returns all the currently defined loggers as an Array.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.GetLogger(System.St
ring)">
<summary>
Returns a named logger instance
</summary>
<param name="name">The name of the logger to retrieve</param>
<returns>The logger object with the name specified</returns>
<remarks>
<para>
Returns a named logger instance.
</para>
<para>
If a logger of that name already exists, then it will be
returned. Otherwise, a new logger will be instantiated and
then linked with its existing ancestors as well as children.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.Shutdown">
<summary>Shutdown the repository</summary>
<remarks>
<para>
Shutting down a repository will <i>safely</i> close and remove
all appenders in all loggers including the root logger.
</para>
<para>
Some appenders need to be closed before the
application exists. Otherwise, pending logging events might be
lost.
</para>
<para>
The <see cref="M:Shutdown()"/> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.ResetConfiguration"
>
<summary>
Reset the repositories configuration to a default state
</summary>
<remarks>
<para>
Reset all values contained in this instance to their
default state.
</para>
<para>
Existing loggers are not removed. They are just reset.
</para>
<para>
This method should be used sparingly and with care as it will
block all logging until it is completed.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.Log(log4net.Core.Lo
ggingEvent)">
<summary>
Log the <see cref="T:log4net.Core.LoggingEvent"/> through this repos
itory.
</summary>
<param name="logEvent">the event to log</param>
<remarks>
<para>
This method should not normally be used to log.
The <see cref="T:log4net.ILog"/> interface should be used
for routine logging. This interface can be obtained
using the <see cref="M:log4net.LogManager.GetLogger(string)"/> metho
d.
</para>
<para>
The <c>logEvent</c> is delivered to the appropriate logger and
that logger is then responsible for logging the event.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.ILoggerRepository.GetAppenders">
<summary>
Returns all the Appenders that are configured as an Array.
</summary>
<returns>All the Appenders</returns>
<remarks>
<para>
Returns all the Appenders that are configured as an Array.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.Name">
<summary>
The name of the repository
</summary>
<value>
The name of the repository
</value>
<remarks>
<para>
The name of the repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.RendererMap">
<summary>
RendererMap accesses the object renderer map for this repository.
</summary>
<value>
RendererMap accesses the object renderer map for this repository.
</value>
<remarks>
<para>
RendererMap accesses the object renderer map for this repository.
</para>
<para>
The RendererMap holds a mapping between types and
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.PluginMap">
<summary>
The plugin map for this repository.
</summary>
<value>
The plugin map for this repository.
</value>
<remarks>
<para>
The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> inst
ances
that have been attached to this repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.LevelMap">
<summary>
Get the level map for the Repository.
</summary>
<remarks>
<para>
Get the level map for the Repository.
</para>
<para>
The level map defines the mappings between
level names and <see cref="T:log4net.Core.Level"/> objects in
this repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.Threshold">
<summary>
The threshold for all events in this repository
</summary>
<value>
The threshold for all events in this repository
</value>
<remarks>
<para>
The threshold for all events in this repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.Configured">
<summary>
Flag indicates if this repository has been configured.
</summary>
<value>
Flag indicates if this repository has been configured.
</value>
<remarks>
<para>
Flag indicates if this repository has been configured.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.ConfigurationMessag
es">
<summary>
Collection of internal messages captured during the most
recent configuration process.
</summary>
</member>
<member name="E:log4net.Repository.ILoggerRepository.ShutdownEvent">
<summary>
Event to notify that the repository has been shutdown.
</summary>
<value>
Event to notify that the repository has been shutdown.
</value>
<remarks>
<para>
Event raised when the repository has been shutdown.
</para>
</remarks>
</member>
<member name="E:log4net.Repository.ILoggerRepository.ConfigurationReset"
>
<summary>
Event to notify that the repository has had its configuration reset.
</summary>
<value>
Event to notify that the repository has had its configuration reset.
</value>
<remarks>
<para>
Event raised when the repository's configuration has been
reset to default.
</para>
</remarks>
</member>
<member name="E:log4net.Repository.ILoggerRepository.ConfigurationChange
d">
<summary>
Event to notify that the repository has had its configuration change
d.
</summary>
<value>
Event to notify that the repository has had its configuration change
d.
</value>
<remarks>
<para>
Event raised when the repository's configuration has been changed.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.ILoggerRepository.Properties">
<summary>
Repository specific properties
</summary>
<value>
Repository specific properties
</value>
<remarks>
<para>
These properties can be specified on a repository specific basis.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor">
<summary>
Default Constructor
</summary>
<remarks>
<para>
Initializes the repository with default (empty) properties.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.#ctor(log4ne
t.Util.PropertiesDictionary)">
<summary>
Construct the repository using specific properties
</summary>
<param name="properties">the properties to set for this repository</
param>
<remarks>
<para>
Initializes the repository with specified properties.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.Exists(Syste
m.String)">
<summary>
Test if logger exists
</summary>
<param name="name">The name of the logger to lookup</param>
<returns>The Logger object with the name specified</returns>
<remarks>
<para>
Check if the named logger exists in the repository. If so return
its reference, otherwise returns <c>null</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.GetCurrentLo
ggers">
<summary>
Returns all the currently defined loggers in the repository
</summary>
<returns>All the defined loggers</returns>
<remarks>
<para>
Returns all the currently defined loggers in the repository as an Ar
ray.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.GetLogger(Sy
stem.String)">
<summary>
Return a new logger instance
</summary>
<param name="name">The name of the logger to retrieve</param>
<returns>The logger object with the name specified</returns>
<remarks>
<para>
Return a new logger instance.
</para>
<para>
If a logger of that name already exists, then it will be
returned. Otherwise, a new logger will be instantiated and
then linked with its existing ancestors as well as children.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.Shutdown">
<summary>
Shutdown the repository
</summary>
<remarks>
<para>
Shutdown the repository. Can be overridden in a subclass.
This base class implementation notifies the <see cref="E:log4net.Rep
ository.LoggerRepositorySkeleton.ShutdownEvent"/>
listeners and all attached plugins of the shutdown event.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.ResetConfigu
ration">
<summary>
Reset the repositories configuration to a default state
</summary>
<remarks>
<para>
Reset all values contained in this instance to their
default state.
</para>
<para>
Existing loggers are not removed. They are just reset.
</para>
<para>
This method should be used sparingly and with care as it will
block all logging until it is completed.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.Log(log4net.
Core.LoggingEvent)">
<summary>
Log the logEvent through this repository.
</summary>
<param name="logEvent">the event to log</param>
<remarks>
<para>
This method should not normally be used to log.
The <see cref="T:log4net.ILog"/> interface should be used
for routine logging. This interface can be obtained
using the <see cref="M:log4net.LogManager.GetLogger(string)"/> metho
d.
</para>
<para>
The <c>logEvent</c> is delivered to the appropriate logger and
that logger is then responsible for logging the event.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.GetAppenders
">
<summary>
Returns all the Appenders that are configured as an Array.
</summary>
<returns>All the Appenders</returns>
<remarks>
<para>
Returns all the Appenders that are configured as an Array.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.LoggerRepositorySkeleton.declaringTyp
e">
<summary>
The fully qualified type of the LoggerRepositorySkeleton class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.AddRenderer(
System.Type,log4net.ObjectRenderer.IObjectRenderer)">
<summary>
Adds an object renderer for a specific class.
</summary>
<param name="typeToRender">The type that will be rendered by the ren
derer supplied.</param>
<param name="rendererInstance">The object renderer used to render th
e object.</param>
<remarks>
<para>
Adds an object renderer for a specific class.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.OnShutdown(S
ystem.EventArgs)">
<summary>
Notify the registered listeners that the repository is shutting down
</summary>
<param name="e">Empty EventArgs</param>
<remarks>
<para>
Notify any listeners that this repository is shutting down.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurat
ionReset(System.EventArgs)">
<summary>
Notify the registered listeners that the repository has had its conf
iguration reset
</summary>
<param name="e">Empty EventArgs</param>
<remarks>
<para>
Notify any listeners that this repository's configuration has been r
eset.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.OnConfigurat
ionChanged(System.EventArgs)">
<summary>
Notify the registered listeners that the repository has had its conf
iguration changed
</summary>
<param name="e">Empty EventArgs</param>
<remarks>
<para>
Notify any listeners that this repository's configuration has change
d.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.LoggerRepositorySkeleton.RaiseConfigu
rationChanged(System.EventArgs)">
<summary>
Raise a configuration changed event on this repository
</summary>
<param name="e">EventArgs.Empty</param>
<remarks>
<para>
Applications that programmatically change the configuration of the r
epository should
raise this event notification to notify listeners.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.Name">
<summary>
The name of the repository
</summary>
<value>
The string name of the repository
</value>
<remarks>
<para>
The name of this repository. The name is
used to store and lookup the repositories
stored by the <see cref="T:log4net.Core.IRepositorySelector"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.Threshold">
<summary>
The threshold for all events in this repository
</summary>
<value>
The threshold for all events in this repository
</value>
<remarks>
<para>
The threshold for all events in this repository
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.RendererMap"
>
<summary>
RendererMap accesses the object renderer map for this repository.
</summary>
<value>
RendererMap accesses the object renderer map for this repository.
</value>
<remarks>
<para>
RendererMap accesses the object renderer map for this repository.
</para>
<para>
The RendererMap holds a mapping between types and
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/> objects.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.PluginMap">
<summary>
The plugin map for this repository.
</summary>
<value>
The plugin map for this repository.
</value>
<remarks>
<para>
The plugin map holds the <see cref="T:log4net.Plugin.IPlugin"/> inst
ances
that have been attached to this repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.LevelMap">
<summary>
Get the level map for the Repository.
</summary>
<remarks>
<para>
Get the level map for the Repository.
</para>
<para>
The level map defines the mappings between
level names and <see cref="T:log4net.Core.Level"/> objects in
this repository.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.Configured">
<summary>
Flag indicates if this repository has been configured.
</summary>
<value>
Flag indicates if this repository has been configured.
</value>
<remarks>
<para>
Flag indicates if this repository has been configured.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.Configuratio
nMessages">
<summary>
Contains a list of internal messages captures during the
last configuration.
</summary>
</member>
<member name="E:log4net.Repository.LoggerRepositorySkeleton.ShutdownEven
t">
<summary>
Event to notify that the repository has been shutdown.
</summary>
<value>
Event to notify that the repository has been shutdown.
</value>
<remarks>
<para>
Event raised when the repository has been shutdown.
</para>
</remarks>
</member>
<member name="E:log4net.Repository.LoggerRepositorySkeleton.Configuratio
nReset">
<summary>
Event to notify that the repository has had its configuration reset.
</summary>
<value>
Event to notify that the repository has had its configuration reset.
</value>
<remarks>
<para>
Event raised when the repository's configuration has been
reset to default.
</para>
</remarks>
</member>
<member name="E:log4net.Repository.LoggerRepositorySkeleton.Configuratio
nChanged">
<summary>
Event to notify that the repository has had its configuration change
d.
</summary>
<value>
Event to notify that the repository has had its configuration change
d.
</value>
<remarks>
<para>
Event raised when the repository's configuration has been changed.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.LoggerRepositorySkeleton.Properties">
<summary>
Repository specific properties
</summary>
<value>
Repository specific properties
</value>
<remarks>
These properties can be specified on a repository specific basis
</remarks>
</member>
<member name="T:log4net.Repository.IBasicRepositoryConfigurator">
<summary>
Basic Configurator interface for repositories
</summary>
<remarks>
<para>
Interface used by basic configurator to configure a <see cref="T:log
4net.Repository.ILoggerRepository"/>
with a default <see cref="T:log4net.Appender.IAppender"/>.
</para>
<para>
A <see cref="T:log4net.Repository.ILoggerRepository"/> should implem
ent this interface to support
configuration by the <see cref="T:log4net.Config.BasicConfigurator"/
>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.IBasicRepositoryConfigurator.Configur
e(log4net.Appender.IAppender)">
<summary>
Initialize the repository using the specified appender
</summary>
<param name="appender">the appender to use to log all logging events
</param>
<remarks>
<para>
Configure the repository to route all logging events to the
specified appender.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.IBasicRepositoryConfigurator.Configur
e(log4net.Appender.IAppender[])">
<summary>
Initialize the repository using the specified appenders
</summary>
<param name="appenders">the appenders to use to log all logging even
ts</param>
<remarks>
<para>
Configure the repository to route all logging events to the
specified appenders.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.IXmlRepositoryConfigurator">
<summary>
Configure repository using XML
</summary>
<remarks>
<para>
Interface used by Xml configurator to configure a <see cref="T:log4n
et.Repository.ILoggerRepository"/>.
</para>
<para>
A <see cref="T:log4net.Repository.ILoggerRepository"/> should implem
ent this interface to support
configuration by the <see cref="T:log4net.Config.XmlConfigurator"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.IXmlRepositoryConfigurator.Configure(
System.Xml.XmlElement)">
<summary>
Initialize the repository using the specified config
</summary>
<param name="element">the element containing the root of the config<
/param>
<remarks>
<para>
The schema for the XML configuration data is defined by
the implementation.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.Hierarchy"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Uti
l.PropertiesDictionary)">
<summary>
Construct with properties
</summary>
<param name="properties">The properties to pass to this repository.<
/param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.Hierarchy"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Rep
ository.Hierarchy.ILoggerFactory)">
<summary>
Construct with a logger factory
</summary>
<param name="loggerFactory">The factory to use to create new logger
instances.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.Hierarchy"/> class with
the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFacto
ry"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.#ctor(log4net.Uti
l.PropertiesDictionary,log4net.Repository.Hierarchy.ILoggerFactory)">
<summary>
Construct with properties and a logger factory
</summary>
<param name="properties">The properties to pass to this repository.<
/param>
<param name="loggerFactory">The factory to use to create new logger
instances.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.Hierarchy"/> class with
the specified <see cref="T:log4net.Repository.Hierarchy.ILoggerFacto
ry"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.Exists(System.Str
ing)">
<summary>
Test if a logger exists
</summary>
<param name="name">The name of the logger to lookup</param>
<returns>The Logger object with the name specified</returns>
<remarks>
<para>
Check if the named logger exists in the hierarchy. If so return
its reference, otherwise returns <c>null</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.GetCurrentLoggers
">
<summary>
Returns all the currently defined loggers in the hierarchy as an Arr
ay
</summary>
<returns>All the defined loggers</returns>
<remarks>
<para>
Returns all the currently defined loggers in the hierarchy as an Arr
ay.
The root logger is <b>not</b> included in the returned
enumeration.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.
String)">
<summary>
Return a new logger instance named as the first parameter using
the default factory.
</summary>
<remarks>
<para>
Return a new logger instance named as the first parameter using
the default factory.
</para>
<para>
If a logger of that name already exists, then it will be
returned. Otherwise, a new logger will be instantiated and
then linked with its existing ancestors as well as children.
</para>
</remarks>
<param name="name">The name of the logger to retrieve</param>
<returns>The logger object with the name specified</returns>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.Shutdown">
<summary>
Shutting down a hierarchy will <i>safely</i> close and remove
all appenders in all loggers including the root logger.
</summary>
<remarks>
<para>
Shutting down a hierarchy will <i>safely</i> close and remove
all appenders in all loggers including the root logger.
</para>
<para>
Some appenders need to be closed before the
application exists. Otherwise, pending logging events might be
lost.
</para>
<para>
The <c>Shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.ResetConfiguratio
n">
<summary>
Reset all values contained in this hierarchy instance to their defau
lt.
</summary>
<remarks>
<para>
Reset all values contained in this hierarchy instance to their
default. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set its default "off" value.
</para>
<para>
Existing loggers are not removed. They are just reset.
</para>
<para>
This method should be used sparingly and with care as it will
block all logging until it is completed.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.Log(log4net.Core.
LoggingEvent)">
<summary>
Log the logEvent through this hierarchy.
</summary>
<param name="logEvent">the event to log</param>
<remarks>
<para>
This method should not normally be used to log.
The <see cref="T:log4net.ILog"/> interface should be used
for routine logging. This interface can be obtained
using the <see cref="M:log4net.LogManager.GetLogger(string)"/> metho
d.
</para>
<para>
The <c>logEvent</c> is delivered to the appropriate logger and
that logger is then responsible for logging the event.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.GetAppenders">
<summary>
Returns all the Appenders that are currently configured
</summary>
<returns>An array containing all the currently configured appenders<
/returns>
<remarks>
<para>
Returns all the <see cref="T:log4net.Appender.IAppender"/> instances
that are currently configured.
All the loggers are searched for appenders. The appenders may also b
e containers
for appenders and these are also searched for additional loggers.
</para>
<para>
The list returned is unordered but does not contain duplicates.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppender(S
ystem.Collections.ArrayList,log4net.Appender.IAppender)">
<summary>
Collect the appenders from an <see cref="T:log4net.Core.IAppenderAtt
achable"/>.
The appender may also be a container.
</summary>
<param name="appenderList"></param>
<param name="appender"></param>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.CollectAppenders(
System.Collections.ArrayList,log4net.Core.IAppenderAttachable)">
<summary>
Collect the appenders from an <see cref="T:log4net.Core.IAppenderAtt
achable"/> container
</summary>
<param name="appenderList"></param>
<param name="container"></param>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repositor
y#IBasicRepositoryConfigurator#Configure(log4net.Appender.IAppender)">
<summary>
Initialize the log4net system using the specified appender
</summary>
<param name="appender">the appender to use to log all logging events
</param>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repositor
y#IBasicRepositoryConfigurator#Configure(log4net.Appender.IAppender[])">
<summary>
Initialize the log4net system using the specified appenders
</summary>
<param name="appenders">the appenders to use to log all logging even
ts</param>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.BasicRepositoryCo
nfigure(log4net.Appender.IAppender[])">
<summary>
Initialize the log4net system using the specified appenders
</summary>
<param name="appenders">the appenders to use to log all logging even
ts</param>
<remarks>
<para>
This method provides the same functionality as the
<see cref="M:IBasicRepositoryConfigurator.Configure(IAppender)"/> me
thod implemented
on this object, but it is protected and therefore can be called by s
ubclasses.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.log4net#Repositor
y#IXmlRepositoryConfigurator#Configure(System.Xml.XmlElement)">
<summary>
Initialize the log4net system using the specified config
</summary>
<param name="element">the element containing the root of the config<
/param>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.XmlRepositoryConf
igure(System.Xml.XmlElement)">
<summary>
Initialize the log4net system using the specified config
</summary>
<param name="element">the element containing the root of the config<
/param>
<remarks>
<para>
This method provides the same functionality as the
<see cref="M:IBasicRepositoryConfigurator.Configure(IAppender)"/> me
thod implemented
on this object, but it is protected and therefore can be called by s
ubclasses.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.IsDisabled(log4ne
t.Core.Level)">
<summary>
Test if this hierarchy is disabled for the specified <see cref="T:lo
g4net.Core.Level"/>.
</summary>
<param name="level">The level to check against.</param>
<returns>
<c>true</c> if the repository is disabled for the level argument, <c
>false</c> otherwise.
</returns>
<remarks>
<para>
If this hierarchy has not been configured then this method will
always return <c>true</c>.
</para>
<para>
This method will return <c>true</c> if this repository is
disabled for <c>level</c> object passed as parameter and
<c>false</c> otherwise.
</para>
<para>
See also the <see cref="P:log4net.Repository.ILoggerRepository.Thres
hold"/> property.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.Clear">
<summary>
Clear all logger definitions from the internal hashtable
</summary>
<remarks>
<para>
This call will clear all logger definitions from the internal
hashtable. Invoking this method will irrevocably mess up the
logger hierarchy.
</para>
<para>
You should <b>really</b> know what you are doing before
invoking this method.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.GetLogger(System.
String,log4net.Repository.Hierarchy.ILoggerFactory)">
<summary>
Return a new logger instance named as the first parameter using
<paramref name="factory"/>.
</summary>
<param name="name">The name of the logger to retrieve</param>
<param name="factory">The factory that will make the new logger inst
ance</param>
<returns>The logger object with the name specified</returns>
<remarks>
<para>
If a logger of that name already exists, then it will be
returned. Otherwise, a new logger will be instantiated by the
<paramref name="factory"/> parameter and linked with its existing
ancestors as well as children.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.OnLoggerCreationE
vent(log4net.Repository.Hierarchy.Logger)">
<summary>
Sends a logger creation event to all registered listeners
</summary>
<param name="logger">The newly created logger</param>
<remarks>
Raises the logger creation event.
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateParents(log
4net.Repository.Hierarchy.Logger)">
<summary>
Updates all the parents of the specified logger
</summary>
<param name="log">The logger to update the parents for</param>
<remarks>
<para>
This method loops through all the <i>potential</i> parents of
<paramref name="log"/>. There 3 possible cases:
</para>
<list type="number">
<item>
<term>No entry for the potential parent of <paramref nam
e="log"/> exists</term>
<description>
We create a ProvisionNode for this potential
parent and insert <paramref name="log"/> in that provisi
on node.
</description>
</item>
<item>
<term>The entry is of type Logger for the potential pare
nt.</term>
<description>
The entry is <paramref name="log"/>'s nearest existing p
arent. We
update <paramref name="log"/>'s parent field with this e
ntry. We also break from
he loop because updating our parent's parent is our pare
nt's
responsibility.
</description>
</item>
<item>
<term>The entry is of type ProvisionNode for this potent
ial parent.</term>
<description>
We add <paramref name="log"/> to the list of children fo
r this
potential parent.
</description>
</item>
</list>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.UpdateChildren(lo
g4net.Repository.Hierarchy.ProvisionNode,log4net.Repository.Hierarchy.Logger)">
<summary>
Replace a <see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/>
with a <see cref="T:log4net.Repository.Hierarchy.Logger"/> in the hierarchy.
</summary>
<param name="pn"></param>
<param name="log"></param>
<remarks>
<para>
We update the links for all the children that placed themselves
in the provision node 'pn'. The second argument 'log' is a
reference for the newly created Logger, parent of all the
children in 'pn'.
</para>
<para>
We loop on all the children 'c' in 'pn'.
</para>
<para>
If the child 'c' has been already linked to a child of
'log' then there is no need to update 'c'.
</para>
<para>
Otherwise, we set log's parent field to c's parent and set
c's parent field to log.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.AddLevel(log4net.
Repository.Hierarchy.Hierarchy.LevelEntry)">
<summary>
Define or redefine a Level using the values in the <see cref="T:log4
net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
</summary>
<param name="levelEntry">the level values</param>
<remarks>
<para>
Define or redefine a Level using the values in the <see cref="T:log4
net.Repository.Hierarchy.Hierarchy.LevelEntry"/> argument
</para>
<para>
Supports setting levels via the configuration file.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.AddProperty(log4n
et.Util.PropertyEntry)">
<summary>
Set a Property using the values in the <see cref="T:log4net.Reposito
ry.Hierarchy.Hierarchy.LevelEntry"/> argument
</summary>
<param name="propertyEntry">the property value</param>
<remarks>
<para>
Set a Property using the values in the <see cref="T:log4net.Reposito
ry.Hierarchy.Hierarchy.LevelEntry"/> argument.
</para>
<para>
Supports setting property values via the configuration file.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.Hierarchy.declaringType">
<summary>
The fully qualified type of the Hierarchy class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="E:log4net.Repository.Hierarchy.Hierarchy.LoggerCreatedEven
t">
<summary>
Event used to notify that a logger has been created.
</summary>
<remarks>
<para>
Event raised when a logger is created.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.EmittedNoAppender
Warning">
<summary>
Has no appender warning been emitted
</summary>
<remarks>
<para>
Flag to indicate if we have already issued a warning
about not having an appender warning.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.Root">
<summary>
Get the root of this hierarchy
</summary>
<remarks>
<para>
Get the root of this hierarchy.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.LoggerFactory">
<summary>
Gets or sets the default <see cref="T:log4net.Repository.Hierarchy.I
LoggerFactory"/> instance.
</summary>
<value>The default <see cref="T:log4net.Repository.Hierarchy.ILogger
Factory"/></value>
<remarks>
<para>
The logger factory is used to create logger instances.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.Hierarchy.LevelEntry">
<summary>
A class to hold the value, name and display name for a level
</summary>
<remarks>
<para>
A class to hold the value, name and display name for a level
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.ToStri
ng">
<summary>
Override <c>Object.ToString</c> to return sensible debug info
</summary>
<returns>string info about this object</returns>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Value"
>
<summary>
Value of the level
</summary>
<remarks>
<para>
If the value is not set (defaults to -1) the value will be looked
up for the current level with the same name.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Name">
<summary>
Name of the level
</summary>
<value>
The name of the level
</value>
<remarks>
<para>
The name of the level.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.Hierarchy.LevelEntry.Displa
yName">
<summary>
Display name for the level
</summary>
<value>
The display name of the level
</value>
<remarks>
<para>
The display name of the level.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.LoggerKey">
<summary>
Used internally to accelerate hash table searches.
</summary>
<remarks>
<para>
Internal class used to improve performance of
string keyed hashtables.
</para>
<para>
The hashcode of the string is cached for reuse.
The string is stored as an interned value.
When comparing two <see cref="T:log4net.Repository.Hierarchy.LoggerK
ey"/> objects for equality
the reference equality of the interned strings is compared.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.Hierarchy.LoggerKey.#ctor(System.Stri
ng)">
<summary>
Construct key with string name
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.LoggerKey"/> class
with the specified name.
</para>
<para>
Stores the hashcode of the string and interns
the string key to optimize comparisons.
</para>
<note>
The Compact Framework 1.0 the <see cref="M:System.String.Intern(Syst
em.String)"/>
method does not work. On the Compact Framework
the string keys are not interned nor are they
compared by reference.
</note>
</remarks>
<param name="name">The name of the logger.</param>
</member>
<member name="M:log4net.Repository.Hierarchy.LoggerKey.GetHashCode">
<summary>
Returns a hash code for the current instance.
</summary>
<returns>A hash code for the current instance.</returns>
<remarks>
<para>
Returns the cached hashcode.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.LoggerKey.Equals(System.Obj
ect)">
<summary>
Determines whether two <see cref="T:log4net.Repository.Hierarchy.Log
gerKey"/> instances
are equal.
</summary>
<param name="obj">The <see cref="T:System.Object"/> to compare with
the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>.</param>
<returns>
<c>true</c> if the specified <see cref="T:System.Object"/> is equal
to the current <see cref="T:log4net.Repository.Hierarchy.LoggerKey"/>; otherwise
, <c>false</c>.
</returns>
<remarks>
<para>
Compares the references of the interned strings.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.ProvisionNode">
<summary>
Provision nodes are used where no logger instance has been specified
</summary>
<remarks>
<para>
<see cref="T:log4net.Repository.Hierarchy.ProvisionNode"/> instances
are used in the
<see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> when there is
no specified
<see cref="T:log4net.Repository.Hierarchy.Logger"/> for that node.
</para>
<para>
A provision node holds a list of child loggers on behalf of
a logger that does not exist.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.Hierarchy.ProvisionNode.#ctor(log4net
.Repository.Hierarchy.Logger)">
<summary>
Create a new provision node with child node
</summary>
<param name="log">A child logger to add to this node.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.ProvisionNode"/> class
with the specified child logger.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.RootLogger">
<summary>
The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> sits at
the root of the logger hierarchy tree.
</summary>
<remarks>
<para>
The <see cref="T:log4net.Repository.Hierarchy.RootLogger"/> is a reg
ular <see cref="T:log4net.Repository.Hierarchy.Logger"/> except
that it provides several guarantees.
</para>
<para>
First, it cannot be assigned a <c>null</c>
level. Second, since the root logger cannot have a parent, the
<see cref="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel"
/> property always returns the value of the
level field without walking the hierarchy.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.Hierarchy.RootLogger.#ctor(log4net.Co
re.Level)">
<summary>
Construct a <see cref="T:log4net.Repository.Hierarchy.RootLogger"/>
</summary>
<param name="level">The level to assign to the root logger.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.RootLogger"/> class with
the specified logging level.
</para>
<para>
The root logger names itself as "root". However, the root
logger cannot be retrieved by name.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.RootLogger.declaringType">
<summary>
The fully qualified type of the RootLogger class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.RootLogger.EffectiveLevel">
<summary>
Gets the assigned level value without walking the logger hierarchy.
</summary>
<value>The assigned level value without walking the logger hierarchy
.</value>
<remarks>
<para>
Because the root logger cannot have a parent and its level
must not be <c>null</c> this property just returns the
value of <see cref="P:log4net.Repository.Hierarchy.Logger.Level"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Repository.Hierarchy.RootLogger.Level">
<summary>
Gets or sets the assigned <see cref="P:log4net.Repository.Hierarchy.
RootLogger.Level"/> for the root logger.
</summary>
<value>
The <see cref="P:log4net.Repository.Hierarchy.RootLogger.Level"/> of
the root logger.
</value>
<remarks>
<para>
Setting the level of the root logger to a <c>null</c> reference
may have catastrophic results. We prevent this here.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.Hierarchy.XmlHierarchyConfigurator">
<summary>
Initializes the log4net environment using an XML DOM.
</summary>
<remarks>
<para>
Configures a <see cref="T:log4net.Repository.Hierarchy.Hierarchy"/>
using an XML DOM.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.#c
tor(log4net.Repository.Hierarchy.Hierarchy)">
<summary>
Construct the configurator for a hierarchy
</summary>
<param name="hierarchy">The hierarchy to build.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Repository.Hi
erarchy.XmlHierarchyConfigurator"/> class
with the specified <see cref="T:log4net.Repository.Hierarchy.Hierarc
hy"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Co
nfigure(System.Xml.XmlElement)">
<summary>
Configure the hierarchy by parsing a DOM tree of XML elements.
</summary>
<param name="element">The root element to parse.</param>
<remarks>
<para>
Configure the hierarchy by parsing a DOM tree of XML elements.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Fi
ndAppenderByReference(System.Xml.XmlElement)">
<summary>
Parse appenders by IDREF.
</summary>
<param name="appenderRef">The appender ref element.</param>
<returns>The instance of the appender that the ref refers to.</retur
ns>
<remarks>
<para>
Parse an XML element that represents an appender and return
the appender.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseAppender(System.Xml.XmlElement)">
<summary>
Parses an appender element.
</summary>
<param name="appenderElement">The appender element.</param>
<returns>The appender instance or <c>null</c> when parsing failed.</
returns>
<remarks>
<para>
Parse an XML element that represents an appender and return
the appender instance.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseLogger(System.Xml.XmlElement)">
<summary>
Parses a logger element.
</summary>
<param name="loggerElement">The logger element.</param>
<remarks>
<para>
Parse an XML element that represents a logger.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseRoot(System.Xml.XmlElement)">
<summary>
Parses the root logger element.
</summary>
<param name="rootElement">The root element.</param>
<remarks>
<para>
Parse an XML element that represents the root logger.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseChildrenOfLoggerElement(System.Xml.XmlElement,log4net.Repository.Hierarchy.Lo
gger,System.Boolean)">
<summary>
Parses the children of a logger element.
</summary>
<param name="catElement">The category element.</param>
<param name="log">The logger instance.</param>
<param name="isRoot">Flag to indicate if the logger is the root logg
er.</param>
<remarks>
<para>
Parse the child elements of a &lt;logger&gt; element.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseRenderer(System.Xml.XmlElement)">
<summary>
Parses an object renderer.
</summary>
<param name="element">The renderer element.</param>
<remarks>
<para>
Parse an XML element that represents a renderer.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Pa
rseLevel(System.Xml.XmlElement,log4net.Repository.Hierarchy.Logger,System.Boolea
n)">
<summary>
Parses a level element.
</summary>
<param name="element">The level element.</param>
<param name="log">The logger object to set the level on.</param>
<param name="isRoot">Flag to indicate if the logger is the root logg
er.</param>
<remarks>
<para>
Parse an XML element that represents a level.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Se
tParameter(System.Xml.XmlElement,System.Object)">
<summary>
Sets a parameter on an object.
</summary>
<param name="element">The parameter element.</param>
<param name="target">The object to set the parameter on.</param>
<remarks>
The parameter name must correspond to a writable property
on the object. The value of the parameter is a string,
therefore this function will attempt to set a string
property first. If unable to set a string property it
will inspect the property and its argument type. It will
attempt to call a static method called <c>Parse</c> on the
type of the property. This method will take a single
string argument and return a value that can be used to
set the property.
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Ha
sAttributesOrElements(System.Xml.XmlElement)">
<summary>
Test if an element has no attributes or child elements
</summary>
<param name="element">the element to inspect</param>
<returns><c>true</c> if the element has any attributes or child elem
ents, <c>false</c> otherwise</returns>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Is
TypeConstructible(System.Type)">
<summary>
Test if a <see cref="T:System.Type"/> is constructible with <c>Activ
ator.CreateInstance</c>.
</summary>
<param name="type">the type to inspect</param>
<returns><c>true</c> if the type is creatable using a default constr
uctor, <c>false</c> otherwise</returns>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Fi
ndMethodInfo(System.Type,System.String)">
<summary>
Look for a method on the <paramref name="targetType"/> that matches
the <paramref name="name"/> supplied
</summary>
<param name="targetType">the type that has the method</param>
<param name="name">the name of the method</param>
<returns>the method info found</returns>
<remarks>
<para>
The method must be a public instance method on the <paramref name="t
argetType"/>.
The method must be named <paramref name="name"/> or "Add" followed b
y <paramref name="name"/>.
The method must take a single parameter.
</para>
</remarks>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Co
nvertStringTo(System.Type,System.String)">
<summary>
Converts a string value to a target type.
</summary>
<param name="type">The type of object to convert the string to.</par
am>
<param name="value">The string value to use as the value of the obje
ct.</param>
<returns>
<para>
An object of type <paramref name="type"/> with value <paramref name=
"value"/> or
<c>null</c> when the conversion could not be performed.
</para>
</returns>
</member>
<member name="M:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.Cr
eateObjectFromXml(System.Xml.XmlElement,System.Type,System.Type)">
<summary>
Creates an object as specified in XML.
</summary>
<param name="element">The XML element that contains the definition o
f the object.</param>
<param name="defaultTargetType">The object type to use if not explic
itly specified.</param>
<param name="typeConstraint">The type that the returned object must
be or must inherit from.</param>
<returns>The object or <c>null</c></returns>
<remarks>
<para>
Parse an XML element and create an object instance based on the conf
iguration
data.
</para>
<para>
The type of the instance may be specified in the XML. If not
specified then the <paramref name="defaultTargetType"/> is used
as the type. However the type is specified it must support the
<paramref name="typeConstraint"/> type.
</para>
</remarks>
</member>
<member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_
appenderBag">
<summary>
key: appenderName, value: appender.
</summary>
</member>
<member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.m_
hierarchy">
<summary>
The Hierarchy being configured.
</summary>
</member>
<member name="F:log4net.Repository.Hierarchy.XmlHierarchyConfigurator.de
claringType">
<summary>
The fully qualified type of the XmlHierarchyConfigurator class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Repository.ConfigurationChangedEventArgs">
<summary>

</summary>
</member>
<member name="M:log4net.Repository.ConfigurationChangedEventArgs.#ctor(S
ystem.Collections.ICollection)">
<summary>

</summary>
<param name="configurationMessages"></param>
</member>
<member name="P:log4net.Repository.ConfigurationChangedEventArgs.Configu
rationMessages">
<summary>

</summary>
</member>
<member name="T:log4net.Repository.LoggerRepositoryShutdownEventHandler"
>
<summary>
Delegate used to handle logger repository shutdown event notificatio
ns
</summary>
<param name="sender">The <see cref="T:log4net.Repository.ILoggerRepo
sitory"/> that is shutting down.</param>
<param name="e">Empty event args</param>
<remarks>
<para>
Delegate used to handle logger repository shutdown event notificatio
ns.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.LoggerRepositoryConfigurationResetEve
ntHandler">
<summary>
Delegate used to handle logger repository configuration reset event
notifications
</summary>
<param name="sender">The <see cref="T:log4net.Repository.ILoggerRepo
sitory"/> that has had its configuration reset.</param>
<param name="e">Empty event args</param>
<remarks>
<para>
Delegate used to handle logger repository configuration reset event
notifications.
</para>
</remarks>
</member>
<member name="T:log4net.Repository.LoggerRepositoryConfigurationChangedE
ventHandler">
<summary>
Delegate used to handle event notifications for logger repository co
nfiguration changes.
</summary>
<param name="sender">The <see cref="T:log4net.Repository.ILoggerRepo
sitory"/> that has had its configuration changed.</param>
<param name="e">Empty event arguments.</param>
<remarks>
<para>
Delegate used to handle event notifications for logger repository co
nfiguration changes.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.AppDomainPatternCon
verter">
<summary>
Write the name of the current AppDomain to the output
</summary>
<remarks>
<para>
Write the name of the current AppDomain to the output writer
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.AppDomainPatternCon
verter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the name of the current AppDomain to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Writes name of the current AppDomain to the output <paramref name="w
riter"/>.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.DatePatternConverte
r">
<summary>
Write the current date to the output
</summary>
<remarks>
<para>
Date pattern converter, uses a <see cref="T:log4net.DateFormatter.ID
ateFormatter"/> to format
the current date and time to the writer as a string.
</para>
<para>
The value of the <see cref="P:log4net.Util.PatternConverter.Option"/
> determines
the formatting of the date. The following values are allowed:
<list type="definition">
<listheader>
<term>Option value</term>
<description>Output</description>
</listheader>
<item>
<term>ISO8601</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.Iso8601DateF
ormatter"/> formatter.
Formats using the <c>"yyyy-MM-dd HH:mm:ss,fff"</c> patte
rn.
</description>
</item>
<item>
<term>DATE</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.DateTimeDate
Formatter"/> formatter.
Formats using the <c>"dd MMM yyyy HH:mm:ss,fff"</c> for
example, <c>"06 Nov 1994 15:49:37,459"</c>.
</description>
</item>
<item>
<term>ABSOLUTE</term>
<description>
Uses the <see cref="T:log4net.DateFormatter.AbsoluteTime
DateFormatter"/> formatter.
Formats using the <c>"HH:mm:ss,fff"</c> for example, <c>
"15:49:37,459"</c>.
</description>
</item>
<item>
<term>other</term>
<description>
Any other pattern string uses the <see cref="T:log4net.D
ateFormatter.SimpleDateFormatter"/> formatter.
This formatter passes the pattern string to the <see cre
f="T:System.DateTime"/>
<see cref="M:DateTime.ToString(string)"/> method.
For details on valid patterns see
<a href="http://msdn.microsoft.com/library/default.asp?u
rl=/library/en-us/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopi
c.asp">DateTimeFormatInfo Class</a>.
</description>
</item>
</list>
</para>
<para>
The date and time is in the local time zone and is rendered in that
zone.
To output the time in Universal time see <see cref="T:log4net.Util.P
atternStringConverters.UtcDatePatternConverter"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.PatternStringConverters.DatePatternConverte
r.m_dateFormatter">
<summary>
The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to ren
der the date to a string
</summary>
<remarks>
<para>
The <see cref="T:log4net.DateFormatter.IDateFormatter"/> used to ren
der the date to a string
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternStringConverters.DatePatternConverte
r.ActivateOptions">
<summary>
Initialize the converter options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Util.PatternStringConver
ters.DatePatternConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Util.PatternStringConverters.Da
tePatternConverter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Util.PatternStringConverters.DatePatternConvert
er.ActivateOptions"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternStringConverters.DatePatternConverte
r.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the current date to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Pass the current date and time to the <see cref="T:log4net.DateForma
tter.IDateFormatter"/>
for it to render it to the writer.
</para>
<para>
The date and time passed is in the local time zone.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.DatePatternConverte
r.declaringType">
<summary>
The fully qualified type of the DatePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.EnvironmentFolderPa
thPatternConverter">
<summary>
Write an <see cref="T:System.Environment.SpecialFolder"/> folder pat
h to the output
</summary>
<remarks>
<para>
Write an special path environment folder path to the output writer.
The value of the <see cref="P:log4net.Util.PatternConverter.Option"/
> determines
the name of the variable to output. <see cref="P:log4net.Util.Patter
nConverter.Option"/>
should be a value in the <see cref="T:System.Environment.SpecialFold
er"/> enumeration.
</para>
</remarks>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.EnvironmentFolderPa
thPatternConverter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write an special path environment folder path to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Writes the special path environment folder path to the output <param
ref name="writer"/>.
The name of the special path environment folder path to output must
be set
using the <see cref="P:log4net.Util.PatternConverter.Option"/>
property.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.EnvironmentFolderPa
thPatternConverter.declaringType">
<summary>
The fully qualified type of the EnvironmentFolderPathPatternConverte
r class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.EnvironmentPatternC
onverter">
<summary>
Write an environment variable to the output
</summary>
<remarks>
<para>
Write an environment variable to the output writer.
The value of the <see cref="P:log4net.Util.PatternConverter.Option"/
> determines
the name of the variable to output.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.EnvironmentPatternC
onverter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write an environment variable to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Writes the environment variable to the output <paramref name="writer
"/>.
The name of the environment variable to output must be set
using the <see cref="P:log4net.Util.PatternConverter.Option"/>
property.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.EnvironmentPatternC
onverter.declaringType">
<summary>
The fully qualified type of the EnvironmentPatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.IdentityPatternConv
erter">
<summary>
Write the current thread identity to the output
</summary>
<remarks>
<para>
Write the current thread identity to the output writer
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.IdentityPatternConv
erter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the current thread identity to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Writes the current thread identity to the output <paramref name="wri
ter"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.IdentityPatternConv
erter.declaringType">
<summary>
The fully qualified type of the IdentityPatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.LiteralPatternConve
rter">
<summary>
Pattern converter for literal string instances in the pattern
</summary>
<remarks>
<para>
Writes the literal string value specified in the
<see cref="P:log4net.Util.PatternConverter.Option"/> property to
the output.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.LiteralPatternConve
rter.SetNext(log4net.Util.PatternConverter)">
<summary>
Set the next converter in the chain
</summary>
<param name="pc">The next pattern converter in the chain</param>
<returns>The next pattern converter</returns>
<remarks>
<para>
Special case the building of the pattern converter chain
for <see cref="T:log4net.Util.PatternStringConverters.LiteralPattern
Converter"/> instances. Two adjacent
literals in the pattern can be represented by a single combined
pattern converter. This implementation detects when a
<see cref="T:log4net.Util.PatternStringConverters.LiteralPatternConv
erter"/> is added to the chain
after this converter and combines its value with this converter's
literal value.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternStringConverters.LiteralPatternConve
rter.Format(System.IO.TextWriter,System.Object)">
<summary>
Write the literal to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, not set</param>
<remarks>
<para>
Override the formatting behavior to ignore the FormattingInfo
because we have a literal instead.
</para>
<para>
Writes the value of <see cref="P:log4net.Util.PatternConverter.Optio
n"/>
to the output <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternStringConverters.LiteralPatternConve
rter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Convert this pattern into the rendered message
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">null, not set</param>
<remarks>
<para>
This method is not used.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.NewLinePatternConve
rter">
<summary>
Writes a newline to the output
</summary>
<remarks>
<para>
Writes the system dependent line terminator to the output.
This behavior can be overridden by setting the <see cref="P:log4net.
Util.PatternConverter.Option"/>:
</para>
<list type="definition">
<listheader>
<term>Option Value</term>
<description>Output</description>
</listheader>
<item>
<term>DOS</term>
<description>DOS or Windows line terminator <c>"\r\n"</c></descr
iption>
</item>
<item>
<term>UNIX</term>
<description>UNIX line terminator <c>"\n"</c></description>
</item>
</list>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.NewLinePatternConve
rter.ActivateOptions">
<summary>
Initialize the converter
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Util.PatternStringConver
ters.NewLinePatternConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Util.PatternStringConverters.Ne
wLinePatternConverter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Util.PatternStringConverters.NewLinePatternConv
erter.ActivateOptions"/> must be called again.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.ProcessIdPatternCon
verter">
<summary>
Write the current process ID to the output
</summary>
<remarks>
<para>
Write the current process ID to the output writer
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.ProcessIdPatternCon
verter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the current process ID to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Write the current process ID to the output <paramref name="writer"/>
.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.ProcessIdPatternCon
verter.declaringType">
<summary>
The fully qualified type of the ProcessIdPatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.PropertyPatternConv
erter">
<summary>
Property pattern converter
</summary>
<remarks>
<para>
This pattern converter reads the thread and global properties.
The thread properties take priority over global properties.
See <see cref="P:log4net.ThreadContext.Properties"/> for details of
the
thread properties. See <see cref="P:log4net.GlobalContext.Properties
"/> for
details of the global properties.
</para>
<para>
If the <see cref="P:log4net.Util.PatternConverter.Option"/> is speci
fied then that will be used to
lookup a single property. If no <see cref="P:log4net.Util.PatternCon
verter.Option"/> is specified
then all properties will be dumped as a list of key value pairs.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.PropertyPatternConv
erter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the property value to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Writes out the value of a named property. The property name
should be set in the <see cref="P:log4net.Util.PatternConverter.Opti
on"/>
property.
</para>
<para>
If the <see cref="P:log4net.Util.PatternConverter.Option"/> is set t
o <c>null</c>
then all the properties are written as key value pairs.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.RandomStringPattern
Converter">
<summary>
A Pattern converter that generates a string of random characters
</summary>
<remarks>
<para>
The converter generates a string of random characters. By default
the string is length 4. This can be changed by setting the <see cref
="P:log4net.Util.PatternConverter.Option"/>
to the string value of the length required.
</para>
<para>
The random characters in the string are limited to uppercase letters
and numbers only.
</para>
<para>
The random number generator used by this class is not cryptographica
lly secure.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.PatternStringConverters.RandomStringPattern
Converter.s_random">
<summary>
Shared random number generator
</summary>
</member>
<member name="F:log4net.Util.PatternStringConverters.RandomStringPattern
Converter.m_length">
<summary>
Length of random string to generate. Default length 4.
</summary>
</member>
<member name="M:log4net.Util.PatternStringConverters.RandomStringPattern
Converter.ActivateOptions">
<summary>
Initialize the converter options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Util.PatternStringConver
ters.RandomStringPatternConverter.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Util.PatternStringConverters.Ra
ndomStringPatternConverter.ActivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Util.PatternStringConverters.RandomStringPatter
nConverter.ActivateOptions"/> must be called again.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternStringConverters.RandomStringPattern
Converter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write a randoim string to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Write a randoim string to the output <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.RandomStringPattern
Converter.declaringType">
<summary>
The fully qualified type of the RandomStringPatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.UserNamePatternConv
erter">
<summary>
Write the current threads username to the output
</summary>
<remarks>
<para>
Write the current threads username to the output writer
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.UserNamePatternConv
erter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the current threads username to the output
</summary>
<param name="writer">the writer to write to</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Write the current threads username to the output <paramref name="wri
ter"/>.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternStringConverters.UserNamePatternConv
erter.declaringType">
<summary>
The fully qualified type of the UserNamePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternStringConverters.UtcDatePatternConve
rter">
<summary>
Write the UTC date time to the output
</summary>
<remarks>
<para>
Date pattern converter, uses a <see cref="T:log4net.DateFormatter.ID
ateFormatter"/> to format
the current date and time in Universal time.
</para>
<para>
See the <see cref="T:log4net.Util.PatternStringConverters.DatePatter
nConverter"/> for details on the date pattern syntax.
</para>
</remarks>
<seealso cref="T:log4net.Util.PatternStringConverters.DatePatternCon
verter"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.PatternStringConverters.UtcDatePatternConve
rter.Convert(System.IO.TextWriter,System.Object)">
<summary>
Write the current date and time to the output
</summary>
<param name="writer"><see cref="T:System.IO.TextWriter"/> that will
receive the formatted result.</param>
<param name="state">null, state is not set</param>
<remarks>
<para>
Pass the current date and time to the <see cref="T:log4net.DateForma
tter.IDateFormatter"/>
for it to render it to the writer.
</para>
<para>
The date is in Universal time when it is rendered.
</para>
</remarks>
<seealso cref="T:log4net.Util.PatternStringConverters.DatePatternCon
verter"/>
</member>
<member name="F:log4net.Util.PatternStringConverters.UtcDatePatternConve
rter.declaringType">
<summary>
The fully qualified type of the UtcDatePatternConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.TypeConverters.BooleanConverter">
<summary>
Type converter for Boolean.
</summary>
<remarks>
<para>
Supports conversion from string to <c>bool</c> type.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.TypeConverters.BooleanConverter.CanConvertF
rom(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.BooleanConverter.ConvertFrom
(System.Object)">
<summary>
Convert the source object to the type supported by this object
</summary>
<param name="source">the object to convert</param>
<returns>the converted object</returns>
<remarks>
<para>
Uses the <see cref="M:System.Boolean.Parse(System.String)"/> method
to convert the
<see cref="T:System.String"/> argument to a <see cref="T:System.Bool
ean"/>.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.BooleanConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="T:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion">
<summary>
Exception base type for conversion errors.
</summary>
<remarks>
<para>
This type extends <see cref="T:System.ApplicationException"/>. It
does not add any new functionality but does differentiate the
type of exception being thrown.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.TypeConv
erters.ConversionNotSupportedException"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="message">A message to include with the exception.</para
m>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.TypeConv
erters.ConversionNotSupportedException"/> class
with the specified message.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.#ctor(System.String,System.Exception)">
<summary>
Constructor
</summary>
<param name="message">A message to include with the exception.</para
m>
<param name="innerException">A nested exception to include.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.TypeConv
erters.ConversionNotSupportedException"/> class
with the specified message and inner exception.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serializ
ation.StreamingContext)">
<summary>
Serialization constructor
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> that holds the serialized object data about the exception bein
g thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.
StreamingContext"/> that contains contextual information about the source or des
tination.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.TypeConv
erters.ConversionNotSupportedException"/> class
with serialized data.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.Create(System.Type,System.Object)">
<summary>
Creates a new instance of the <see cref="T:log4net.Util.TypeConverte
rs.ConversionNotSupportedException"/> class.
</summary>
<param name="destinationType">The conversion destination type.</para
m>
<param name="sourceValue">The value to convert.</param>
<returns>An instance of the <see cref="T:log4net.Util.TypeConverters
.ConversionNotSupportedException"/>.</returns>
<remarks>
<para>
Creates a new instance of the <see cref="T:log4net.Util.TypeConverte
rs.ConversionNotSupportedException"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConversionNotSupportedExcept
ion.Create(System.Type,System.Object,System.Exception)">
<summary>
Creates a new instance of the <see cref="T:log4net.Util.TypeConverte
rs.ConversionNotSupportedException"/> class.
</summary>
<param name="destinationType">The conversion destination type.</para
m>
<param name="sourceValue">The value to convert.</param>
<param name="innerException">A nested exception to include.</param>
<returns>An instance of the <see cref="T:log4net.Util.TypeConverters
.ConversionNotSupportedException"/>.</returns>
<remarks>
<para>
Creates a new instance of the <see cref="T:log4net.Util.TypeConverte
rs.ConversionNotSupportedException"/> class.
</para>
</remarks>
</member>
<member name="T:log4net.Util.TypeConverters.ConverterRegistry">
<summary>
Register of type converters for specific types.
</summary>
<remarks>
<para>
Maintains a registry of type converters used to convert between
types.
</para>
<para>
Use the <see cref="M:AddConverter(Type, object)"/> and
<see cref="M:AddConverter(Type, Type)"/> methods to register new con
verters.
The <see cref="M:log4net.Util.TypeConverters.ConverterRegistry.GetCo
nvertTo(System.Type,System.Type)"/> and <see cref="M:log4net.Util.TypeConverters
.ConverterRegistry.GetConvertFrom(System.Type)"/> methods
lookup appropriate converters to use.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.#ctor">
<summary>
Private constructor
</summary>
<remarks>
Initializes a new instance of the <see cref="T:log4net.Util.TypeConv
erters.ConverterRegistry"/> class.
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.#cctor">
<summary>
Static constructor.
</summary>
<remarks>
<para>
This constructor defines the intrinsic type converters.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConvert
er(System.Type,System.Object)">
<summary>
Adds a converter for a specific type.
</summary>
<param name="destinationType">The type being converted to.</param>
<param name="converter">The type converter to use to convert to the
destination type.</param>
<remarks>
<para>
Adds a converter instance for a specific type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.AddConvert
er(System.Type,System.Type)">
<summary>
Adds a converter for a specific type.
</summary>
<param name="destinationType">The type being converted to.</param>
<param name="converterType">The type of the type converter to use to
convert to the destination type.</param>
<remarks>
<para>
Adds a converter <see cref="T:System.Type"/> for a specific type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvert
To(System.Type,System.Type)">
<summary>
Gets the type converter to use to convert values to the destination
type.
</summary>
<param name="sourceType">The type being converted from.</param>
<param name="destinationType">The type being converted to.</param>
<returns>
The type converter instance to use for type conversions or <c>null</
c>
if no type converter is found.
</returns>
<remarks>
<para>
Gets the type converter to use to convert values to the destination
type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvert
From(System.Type)">
<summary>
Gets the type converter to use to convert values to the destination
type.
</summary>
<param name="destinationType">The type being converted to.</param>
<returns>
The type converter instance to use for type conversions or <c>null</
c>
if no type converter is found.
</returns>
<remarks>
<para>
Gets the type converter to use to convert values to the destination
type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.GetConvert
erFromAttribute(System.Type)">
<summary>
Lookups the type converter to use as specified by the attributes on
the
destination type.
</summary>
<param name="destinationType">The type being converted to.</param>
<returns>
The type converter instance to use for type conversions or <c>null</
c>
if no type converter is found.
</returns>
</member>
<member name="M:log4net.Util.TypeConverters.ConverterRegistry.CreateConv
erterInstance(System.Type)">
<summary>
Creates the instance of the type converter.
</summary>
<param name="converterType">The type of the type converter.</param>
<returns>
The type converter instance to use for type conversions or <c>null</
c>
if no type converter is found.
</returns>
<remarks>
<para>
The type specified for the type converter must implement
the <see cref="T:log4net.Util.TypeConverters.IConvertFrom"/> or <see
cref="T:log4net.Util.TypeConverters.IConvertTo"/> interfaces
and must have a public default (no argument) constructor.
</para>
</remarks>
</member>
<member name="F:log4net.Util.TypeConverters.ConverterRegistry.declaringT
ype">
<summary>
The fully qualified type of the ConverterRegistry class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="F:log4net.Util.TypeConverters.ConverterRegistry.s_type2con
verter">
<summary>
Mapping from <see cref="T:System.Type"/> to type converter.
</summary>
</member>
<member name="T:log4net.Util.TypeConverters.EncodingConverter">
<summary>
Supports conversion from string to <see cref="T:System.Text.Encoding
"/> type.
</summary>
<remarks>
<para>
Supports conversion from string to <see cref="T:System.Text.Encoding
"/> type.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.TypeConverters.EncodingConverter.CanConvert
From(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.EncodingConverter.ConvertFro
m(System.Object)">
<summary>
Overrides the ConvertFrom method of IConvertFrom.
</summary>
<param name="source">the object to convert to an encoding</param>
<returns>the encoding</returns>
<remarks>
<para>
Uses the <see cref="M:Encoding.GetEncoding(string)"/> method to
convert the <see cref="T:System.String"/> argument to an <see cref="
T:System.Text.Encoding"/>.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.EncodingConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="T:log4net.Util.TypeConverters.IConvertTo">
<summary>
Interface supported by type converters
</summary>
<remarks>
<para>
This interface supports conversion from a single type to arbitrary t
ypes.
See <see cref="T:log4net.Util.TypeConverters.TypeConverterAttribute"
/>.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.TypeConverters.IConvertTo.CanConvertTo(Syst
em.Type)">
<summary>
Returns whether this converter can convert the object to the specifi
ed type
</summary>
<param name="targetType">A Type that represents the type you want to
convert to</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Test if the type supported by this converter can be converted to the
<paramref name="targetType"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.IConvertTo.ConvertTo(System.
Object,System.Type)">
<summary>
Converts the given value object to the specified type, using the arg
uments
</summary>
<param name="source">the object to convert</param>
<param name="targetType">The Type to convert the value parameter to<
/param>
<returns>the converted object</returns>
<remarks>
<para>
Converts the <paramref name="source"/> (which must be of the type su
pported
by this converter) to the <paramref name="targetType"/> specified..
</para>
</remarks>
</member>
<member name="T:log4net.Util.TypeConverters.IPAddressConverter">
<summary>
Supports conversion from string to <see cref="T:System.Net.IPAddress
"/> type.
</summary>
<remarks>
<para>
Supports conversion from string to <see cref="T:System.Net.IPAddress
"/> type.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.TypeConverters.IPAddressConverter.CanConver
tFrom(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.IPAddressConverter.ConvertFr
om(System.Object)">
<summary>
Overrides the ConvertFrom method of IConvertFrom.
</summary>
<param name="source">the object to convert to an IPAddress</param>
<returns>the IPAddress</returns>
<remarks>
<para>
Uses the <see cref="M:System.Net.IPAddress.Parse(System.String)"/> m
ethod to convert the
<see cref="T:System.String"/> argument to an <see cref="T:System.Net
.IPAddress"/>.
If that fails then the string is resolved as a DNS hostname.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.IPAddressConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="F:log4net.Util.TypeConverters.IPAddressConverter.validIpAd
dressChars">
<summary>
Valid characters in an IPv4 or IPv6 address string. (Does not suppor
t subnets)
</summary>
</member>
<member name="T:log4net.Util.TypeConverters.PatternLayoutConverter">
<summary>
Supports conversion from string to <see cref="T:log4net.Layout.Patte
rnLayout"/> type.
</summary>
<remarks>
<para>
Supports conversion from string to <see cref="T:log4net.Layout.Patte
rnLayout"/> type.
</para>
<para>
The string is used as the <see cref="P:log4net.Layout.PatternLayout.
ConversionPattern"/>
of the <see cref="T:log4net.Layout.PatternLayout"/>.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.CanCo
nvertFrom(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.PatternLayoutConverter.Conve
rtFrom(System.Object)">
<summary>
Overrides the ConvertFrom method of IConvertFrom.
</summary>
<param name="source">the object to convert to a PatternLayout</param
>
<returns>the PatternLayout</returns>
<remarks>
<para>
Creates and returns a new <see cref="T:log4net.Layout.PatternLayout"
/> using
the <paramref name="source"/> <see cref="T:System.String"/> as the
<see cref="P:log4net.Layout.PatternLayout.ConversionPattern"/>.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.PatternLayoutConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="T:log4net.Util.TypeConverters.PatternStringConverter">
<summary>
Convert between string and <see cref="T:log4net.Util.PatternString"/
>
</summary>
<remarks>
<para>
Supports conversion from string to <see cref="T:log4net.Util.Pattern
String"/> type,
and from a <see cref="T:log4net.Util.PatternString"/> type to a stri
ng.
</para>
<para>
The string is used as the <see cref="P:log4net.Util.PatternString.Co
nversionPattern"/>
of the <see cref="T:log4net.Util.PatternString"/>.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanCo
nvertTo(System.Type)">
<summary>
Can the target type be converted to the type supported by this objec
t
</summary>
<param name="targetType">A <see cref="T:System.Type"/> that represen
ts the type you want to convert to</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="targetType"/> is
assignable from a <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.PatternStringConverter.Conve
rtTo(System.Object,System.Type)">
<summary>
Converts the given value object to the specified type, using the arg
uments
</summary>
<param name="source">the object to convert</param>
<param name="targetType">The Type to convert the value parameter to<
/param>
<returns>the converted object</returns>
<remarks>
<para>
Uses the <see cref="M:PatternString.Format()"/> method to convert th
e
<see cref="T:log4net.Util.PatternString"/> argument to a <see cref="
T:System.String"/>.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
<paramref name="targetType"/>. To check for this condition use the
<see cref="M:log4net.Util.TypeConverters.PatternStringConverter.CanC
onvertTo(System.Type)"/> method.
</exception>
</member>
<member name="M:log4net.Util.TypeConverters.PatternStringConverter.CanCo
nvertFrom(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.PatternStringConverter.Conve
rtFrom(System.Object)">
<summary>
Overrides the ConvertFrom method of IConvertFrom.
</summary>
<param name="source">the object to convert to a PatternString</param
>
<returns>the PatternString</returns>
<remarks>
<para>
Creates and returns a new <see cref="T:log4net.Util.PatternString"/>
using
the <paramref name="source"/> <see cref="T:System.String"/> as the
<see cref="P:log4net.Util.PatternString.ConversionPattern"/>.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.PatternStringConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="T:log4net.Util.TypeConverters.TypeConverter">
<summary>
Supports conversion from string to <see cref="T:System.Type"/> type.
</summary>
<remarks>
<para>
Supports conversion from string to <see cref="T:System.Type"/> type.
</para>
</remarks>
<seealso cref="T:log4net.Util.TypeConverters.ConverterRegistry"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertFrom"/>
<seealso cref="T:log4net.Util.TypeConverters.IConvertTo"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.TypeConverters.TypeConverter.CanConvertFrom
(System.Type)">
<summary>
Can the source type be converted to the type supported by this objec
t
</summary>
<param name="sourceType">the type to convert</param>
<returns>true if the conversion is possible</returns>
<remarks>
<para>
Returns <c>true</c> if the <paramref name="sourceType"/> is
the <see cref="T:System.String"/> type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.TypeConverter.ConvertFrom(Sy
stem.Object)">
<summary>
Overrides the ConvertFrom method of IConvertFrom.
</summary>
<param name="source">the object to convert to a Type</param>
<returns>the Type</returns>
<remarks>
<para>
Uses the <see cref="M:Type.GetType(string,bool)"/> method to convert
the
<see cref="T:System.String"/> argument to a <see cref="T:System.Type
"/>.
Additional effort is made to locate partially specified types
by searching the loaded assemblies.
</para>
</remarks>
<exception cref="T:log4net.Util.TypeConverters.ConversionNotSupporte
dException">
The <paramref name="source"/> object cannot be converted to the
target type. To check for this condition use the <see cref="M:log4ne
t.Util.TypeConverters.TypeConverter.CanConvertFrom(System.Type)"/>
method.
</exception>
</member>
<member name="T:log4net.Util.TypeConverters.TypeConverterAttribute">
<summary>
Attribute used to associate a type converter
</summary>
<remarks>
<para>
Class and Interface level attribute that specifies a type converter
to use with the associated type.
</para>
<para>
To associate a type converter with a target type apply a
<c>TypeConverterAttribute</c> to the target type. Specify the
type of the type converter on the attribute.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Util.TypeConverters.TypeConverterAttribute.m_typ
eName">
<summary>
The string type name of the type converter
</summary>
</member>
<member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor
">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor
(System.String)">
<summary>
Create a new type converter attribute for the specified type name
</summary>
<param name="typeName">The string type name of the type converter</p
aram>
<remarks>
<para>
The type specified must implement the <see cref="T:log4net.Util.Type
Converters.IConvertFrom"/>
or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interf
aces.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TypeConverters.TypeConverterAttribute.#ctor
(System.Type)">
<summary>
Create a new type converter attribute for the specified type
</summary>
<param name="converterType">The type of the type converter</param>
<remarks>
<para>
The type specified must implement the <see cref="T:log4net.Util.Type
Converters.IConvertFrom"/>
or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interf
aces.
</para>
</remarks>
</member>
<member name="P:log4net.Util.TypeConverters.TypeConverterAttribute.Conve
rterTypeName">
<summary>
The string type name of the type converter
</summary>
<value>
The string type name of the type converter
</value>
<remarks>
<para>
The type specified must implement the <see cref="T:log4net.Util.Type
Converters.IConvertFrom"/>
or the <see cref="T:log4net.Util.TypeConverters.IConvertTo"/> interf
aces.
</para>
</remarks>
</member>
<member name="T:log4net.Util.AppenderAttachedImpl">
<summary>
A straightforward implementation of the <see cref="T:log4net.Core.IA
ppenderAttachable"/> interface.
</summary>
<remarks>
<para>
This is the default implementation of the <see cref="T:log4net.Core.
IAppenderAttachable"/>
interface. Implementors of the <see cref="T:log4net.Core.IAppenderAt
tachable"/> interface
should aggregate an instance of this type.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Appender
AttachedImpl"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(
log4net.Core.LoggingEvent)">
<summary>
Append on on all attached appenders.
</summary>
<param name="loggingEvent">The event being logged.</param>
<returns>The number of appenders called.</returns>
<remarks>
<para>
Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.C
ore.LoggingEvent)"/> method on all
attached appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(
log4net.Core.LoggingEvent[])">
<summary>
Append on on all attached appenders.
</summary>
<param name="loggingEvents">The array of events being logged.</param
>
<returns>The number of appenders called.</returns>
<remarks>
<para>
Calls the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.C
ore.LoggingEvent)"/> method on all
attached appenders.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.CallAppend(log4net.App
ender.IAppender,log4net.Core.LoggingEvent[])">
<summary>
Calls the DoAppende method on the <see cref="T:log4net.Appender.IApp
ender"/> with
the <see cref="T:log4net.Core.LoggingEvent"/> objects supplied.
</summary>
<param name="appender">The appender</param>
<param name="loggingEvents">The events</param>
<remarks>
<para>
If the <paramref name="appender"/> supports the <see cref="T:log4net
.Appender.IBulkAppender"/>
interface then the <paramref name="loggingEvents"/> will be passed
through using that interface. Otherwise the <see cref="T:log4net.Cor
e.LoggingEvent"/>
objects in the array will be passed one at a time.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.AddAppender(log4net.Ap
pender.IAppender)">
<summary>
Attaches an appender.
</summary>
<param name="newAppender">The appender to add.</param>
<remarks>
<para>
If the appender is already in the list it won't be added again.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.GetAppender(System.Str
ing)">
<summary>
Gets an attached appender with the specified name.
</summary>
<param name="name">The name of the appender to get.</param>
<returns>
The appender with the name specified, or <c>null</c> if no appender
with the
specified name is found.
</returns>
<remarks>
<para>
Lookup an attached appender by name.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.RemoveAllAppenders">
<summary>
Removes all attached appenders.
</summary>
<remarks>
<para>
Removes and closes all attached appenders
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(log4net
.Appender.IAppender)">
<summary>
Removes the specified appender from the list of attached appenders.
</summary>
<param name="appender">The appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="M:log4net.Util.AppenderAttachedImpl.RemoveAppender(System.
String)">
<summary>
Removes the appender with the specified name from the list of append
ers.
</summary>
<param name="name">The name of the appender to remove.</param>
<returns>The appender removed from the list</returns>
<remarks>
<para>
The appender removed is not closed.
If you are discarding the appender you must call
<see cref="M:log4net.Appender.IAppender.Close"/> on the appender rem
oved.
</para>
</remarks>
</member>
<member name="F:log4net.Util.AppenderAttachedImpl.m_appenderList">
<summary>
List of appenders
</summary>
</member>
<member name="F:log4net.Util.AppenderAttachedImpl.m_appenderArray">
<summary>
Array of appenders, used to cache the m_appenderList
</summary>
</member>
<member name="F:log4net.Util.AppenderAttachedImpl.declaringType">
<summary>
The fully qualified type of the AppenderAttachedImpl class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Util.AppenderAttachedImpl.Appenders">
<summary>
Gets all attached appenders.
</summary>
<returns>
A collection of attached appenders, or <c>null</c> if there
are no attached appenders.
</returns>
<remarks>
<para>
The read only collection of all currently attached appenders.
</para>
</remarks>
</member>
<member name="T:log4net.Util.CompositeProperties">
<summary>
This class aggregates several PropertiesDictionary collections toget
her.
</summary>
<remarks>
<para>
Provides a dictionary style lookup over an ordered list of
<see cref="T:log4net.Util.PropertiesDictionary"/> collections.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.CompositeProperties.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Composit
eProperties"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CompositeProperties.Add(log4net.Util.ReadOn
lyPropertiesDictionary)">
<summary>
Add a Properties Dictionary to this composite collection
</summary>
<param name="properties">the properties to add</param>
<remarks>
<para>
Properties dictionaries added first take precedence over dictionarie
s added
later.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CompositeProperties.Flatten">
<summary>
Flatten this composite collection into a single properties dictionar
y
</summary>
<returns>the flattened dictionary</returns>
<remarks>
<para>
Reduces the collection of ordered dictionaries to a single dictionar
y
containing the resultant values for the keys.
</para>
</remarks>
</member>
<member name="P:log4net.Util.CompositeProperties.Item(System.String)">
<summary>
Gets the value of a property
</summary>
<value>
The value for the property with the specified key
</value>
<remarks>
<para>
Looks up the value for the <paramref name="key"/> specified.
The <see cref="T:log4net.Util.PropertiesDictionary"/> collections ar
e searched
in the order in which they were added to this collection. The value
returned is the value held by the first collection that contains
the specified key.
</para>
<para>
If none of the collections contain the specified key then
<c>null</c> is returned.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ContextPropertiesBase">
<summary>
Base class for Context Properties implementations
</summary>
<remarks>
<para>
This class defines a basic property get set accessor
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="P:log4net.Util.ContextPropertiesBase.Item(System.String)">
<summary>
Gets or sets the value of a property
</summary>
<value>
The value for the property with the specified key
</value>
<remarks>
<para>
Gets or sets the value of a property
</para>
</remarks>
</member>
<member name="T:log4net.Util.ConverterInfo">
<summary>
Wrapper class used to map converter names to converter types
</summary>
<remarks>
<para>
Pattern converter info class used during configuration by custom
PatternString and PatternLayer converters.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ConverterInfo.#ctor">
<summary>
default constructor
</summary>
</member>
<member name="M:log4net.Util.ConverterInfo.AddProperty(log4net.Util.Prop
ertyEntry)">
<summary>

</summary>
<param name="entry"></param>
</member>
<member name="P:log4net.Util.ConverterInfo.Name">
<summary>
Gets or sets the name of the conversion pattern
</summary>
<remarks>
<para>
The name of the pattern in the format string
</para>
</remarks>
</member>
<member name="P:log4net.Util.ConverterInfo.Type">
<summary>
Gets or sets the type of the converter
</summary>
<remarks>
<para>
The value specified must extend the
<see cref="T:log4net.Util.PatternConverter"/> type.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ConverterInfo.Properties">
<summary>

</summary>
</member>
<member name="T:log4net.Util.CountingQuietTextWriter">
<summary>
Subclass of <see cref="T:log4net.Util.QuietTextWriter"/> that mainta
ins a count of
the number of bytes written.
</summary>
<remarks>
<para>
This writer counts the number of bytes written.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Util.QuietTextWriter">
<summary>
<see cref="T:System.IO.TextWriter"/> that does not leak exceptions
</summary>
<remarks>
<para>
<see cref="T:log4net.Util.QuietTextWriter"/> does not throw exceptio
ns when things go wrong.
Instead, it delegates error handling to its <see cref="T:log4net.Cor
e.IErrorHandler"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Util.TextWriterAdapter">
<summary>
Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwar
ds all
messages to an instance of <see cref="T:System.IO.TextWriter"/>.
</summary>
<remarks>
<para>
Adapter that extends <see cref="T:System.IO.TextWriter"/> and forwar
ds all
messages to an instance of <see cref="T:System.IO.TextWriter"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.TextWriterAdapter.m_writer">
<summary>
The writer to forward messages to
</summary>
</member>
<member name="M:log4net.Util.TextWriterAdapter.#ctor(System.IO.TextWrite
r)">
<summary>
Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/>
that forwards all
messages to a <see cref="T:System.IO.TextWriter"/>.
</summary>
<param name="writer">The <see cref="T:System.IO.TextWriter"/> to for
ward to</param>
<remarks>
<para>
Create an instance of <see cref="T:log4net.Util.TextWriterAdapter"/>
that forwards all
messages to a <see cref="T:System.IO.TextWriter"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Close">
<summary>
Closes the writer and releases any system resources associated with
the writer
</summary>
<remarks>
<para>
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Dispose(System.Boolean)">
<summary>
Dispose this writer
</summary>
<param name="disposing">flag indicating if we are being disposed</pa
ram>
<remarks>
<para>
Dispose this writer
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Flush">
<summary>
Flushes any buffered output
</summary>
<remarks>
<para>
Clears all buffers for the writer and causes any buffered data to be
written
to the underlying device
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Write(System.Char)">
<summary>
Writes a character to the wrapped TextWriter
</summary>
<param name="value">the value to write to the TextWriter</param>
<remarks>
<para>
Writes a character to the wrapped TextWriter
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Write(System.Char[],Syste
m.Int32,System.Int32)">
<summary>
Writes a character buffer to the wrapped TextWriter
</summary>
<param name="buffer">the data buffer</param>
<param name="index">the start index</param>
<param name="count">the number of characters to write</param>
<remarks>
<para>
Writes a character buffer to the wrapped TextWriter
</para>
</remarks>
</member>
<member name="M:log4net.Util.TextWriterAdapter.Write(System.String)">
<summary>
Writes a string to the wrapped TextWriter
</summary>
<param name="value">the value to write to the TextWriter</param>
<remarks>
<para>
Writes a string to the wrapped TextWriter
</para>
</remarks>
</member>
<member name="P:log4net.Util.TextWriterAdapter.Writer">
<summary>
Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
</summary>
<value>
The underlying <see cref="T:System.IO.TextWriter"/>.
</value>
<remarks>
<para>
Gets or sets the underlying <see cref="T:System.IO.TextWriter"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.TextWriterAdapter.Encoding">
<summary>
The Encoding in which the output is written
</summary>
<value>
The <see cref="P:log4net.Util.TextWriterAdapter.Encoding"/>
</value>
<remarks>
<para>
The Encoding in which the output is written
</para>
</remarks>
</member>
<member name="P:log4net.Util.TextWriterAdapter.FormatProvider">
<summary>
Gets an object that controls formatting
</summary>
<value>
The format provider
</value>
<remarks>
<para>
Gets an object that controls formatting
</para>
</remarks>
</member>
<member name="P:log4net.Util.TextWriterAdapter.NewLine">
<summary>
Gets or sets the line terminator string used by the TextWriter
</summary>
<value>
The line terminator to use
</value>
<remarks>
<para>
Gets or sets the line terminator string used by the TextWriter
</para>
</remarks>
</member>
<member name="M:log4net.Util.QuietTextWriter.#ctor(System.IO.TextWriter,
log4net.Core.IErrorHandler)">
<summary>
Constructor
</summary>
<param name="writer">the writer to actually write to</param>
<param name="errorHandler">the error handler to report error to</par
am>
<remarks>
<para>
Create a new QuietTextWriter using a writer and error handler
</para>
</remarks>
</member>
<member name="M:log4net.Util.QuietTextWriter.Write(System.Char)">
<summary>
Writes a character to the underlying writer
</summary>
<param name="value">the char to write</param>
<remarks>
<para>
Writes a character to the underlying writer
</para>
</remarks>
</member>
<member name="M:log4net.Util.QuietTextWriter.Write(System.Char[],System.
Int32,System.Int32)">
<summary>
Writes a buffer to the underlying writer
</summary>
<param name="buffer">the buffer to write</param>
<param name="index">the start index to write from</param>
<param name="count">the number of characters to write</param>
<remarks>
<para>
Writes a buffer to the underlying writer
</para>
</remarks>
</member>
<member name="M:log4net.Util.QuietTextWriter.Write(System.String)">
<summary>
Writes a string to the output.
</summary>
<param name="value">The string data to write to the output.</param>
<remarks>
<para>
Writes a string to the output.
</para>
</remarks>
</member>
<member name="M:log4net.Util.QuietTextWriter.Close">
<summary>
Closes the underlying output writer.
</summary>
<remarks>
<para>
Closes the underlying output writer.
</para>
</remarks>
</member>
<member name="F:log4net.Util.QuietTextWriter.m_errorHandler">
<summary>
The error handler instance to pass all errors to
</summary>
</member>
<member name="F:log4net.Util.QuietTextWriter.m_closed">
<summary>
Flag to indicate if this writer is closed
</summary>
</member>
<member name="P:log4net.Util.QuietTextWriter.ErrorHandler">
<summary>
Gets or sets the error handler that all errors are passed to.
</summary>
<value>
The error handler that all errors are passed to.
</value>
<remarks>
<para>
Gets or sets the error handler that all errors are passed to.
</para>
</remarks>
</member>
<member name="P:log4net.Util.QuietTextWriter.Closed">
<summary>
Gets a value indicating whether this writer is closed.
</summary>
<value>
<c>true</c> if this writer is closed, otherwise <c>false</c>.
</value>
<remarks>
<para>
Gets a value indicating whether this writer is closed.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CountingQuietTextWriter.#ctor(System.IO.Tex
tWriter,log4net.Core.IErrorHandler)">
<summary>
Constructor
</summary>
<param name="writer">The <see cref="T:System.IO.TextWriter"/> to act
ually write to.</param>
<param name="errorHandler">The <see cref="T:log4net.Core.IErrorHandl
er"/> to report errors to.</param>
<remarks>
<para>
Creates a new instance of the <see cref="T:log4net.Util.CountingQuie
tTextWriter"/> class
with the specified <see cref="T:System.IO.TextWriter"/> and <see cre
f="T:log4net.Core.IErrorHandler"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char)"
>
<summary>
Writes a character to the underlying writer and counts the number of
bytes written.
</summary>
<param name="value">the char to write</param>
<remarks>
<para>
Overrides implementation of <see cref="T:log4net.Util.QuietTextWrite
r"/>. Counts
the number of bytes written.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CountingQuietTextWriter.Write(System.Char[]
,System.Int32,System.Int32)">
<summary>
Writes a buffer to the underlying writer and counts the number of by
tes written.
</summary>
<param name="buffer">the buffer to write</param>
<param name="index">the start index to write from</param>
<param name="count">the number of characters to write</param>
<remarks>
<para>
Overrides implementation of <see cref="T:log4net.Util.QuietTextWrite
r"/>. Counts
the number of bytes written.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CountingQuietTextWriter.Write(System.String
)">
<summary>
Writes a string to the output and counts the number of bytes written
.
</summary>
<param name="str">The string data to write to the output.</param>
<remarks>
<para>
Overrides implementation of <see cref="T:log4net.Util.QuietTextWrite
r"/>. Counts
the number of bytes written.
</para>
</remarks>
</member>
<member name="F:log4net.Util.CountingQuietTextWriter.m_countBytes">
<summary>
Total number of bytes written.
</summary>
</member>
<member name="P:log4net.Util.CountingQuietTextWriter.Count">
<summary>
Gets or sets the total number of bytes written.
</summary>
<value>
The total number of bytes written.
</value>
<remarks>
<para>
Gets or sets the total number of bytes written.
</para>
</remarks>
</member>
<member name="T:log4net.Util.CyclicBuffer">
<summary>
A fixed size rolling buffer of logging events.
</summary>
<remarks>
<para>
An array backed fixed size leaky bucket.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.CyclicBuffer.#ctor(System.Int32)">
<summary>
Constructor
</summary>
<param name="maxSize">The maximum number of logging events in the bu
ffer.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.CyclicBu
ffer"/> class with
the specified maximum number of buffered logging events.
</para>
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref
name="maxSize"/> argument is not a positive integer.</exception>
</member>
<member name="M:log4net.Util.CyclicBuffer.Append(log4net.Core.LoggingEve
nt)">
<summary>
Appends a <paramref name="loggingEvent"/> to the buffer.
</summary>
<param name="loggingEvent">The event to append to the buffer.</param
>
<returns>The event discarded from the buffer, if the buffer is full,
otherwise <c>null</c>.</returns>
<remarks>
<para>
Append an event to the buffer. If the buffer still contains free spa
ce then
<c>null</c> is returned. If the buffer is full then an event will be
dropped
to make space for the new event, the event dropped is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CyclicBuffer.PopOldest">
<summary>
Get and remove the oldest event in the buffer.
</summary>
<returns>The oldest logging event in the buffer</returns>
<remarks>
<para>
Gets the oldest (first) logging event in the buffer and removes it
from the buffer.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CyclicBuffer.PopAll">
<summary>
Pops all the logging events from the buffer into an array.
</summary>
<returns>An array of all the logging events in the buffer.</returns>
<remarks>
<para>
Get all the events in the buffer and clear the buffer.
</para>
</remarks>
</member>
<member name="M:log4net.Util.CyclicBuffer.Clear">
<summary>
Clear the buffer
</summary>
<remarks>
<para>
Clear the buffer of all events. The events in the buffer are lost.
</para>
</remarks>
</member>
<member name="P:log4net.Util.CyclicBuffer.Item(System.Int32)">
<summary>
Gets the <paramref name="i"/>th oldest event currently in the buffer
.
</summary>
<value>The <paramref name="i"/>th oldest event currently in the buff
er.</value>
<remarks>
<para>
If <paramref name="i"/> is outside the range 0 to the number of even
ts
currently in the buffer, then <c>null</c> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Util.CyclicBuffer.MaxSize">
<summary>
Gets the maximum size of the buffer.
</summary>
<value>The maximum size of the buffer.</value>
<remarks>
<para>
Gets the maximum size of the buffer
</para>
</remarks>
</member>
<member name="P:log4net.Util.CyclicBuffer.Length">
<summary>
Gets the number of logging events in the buffer.
</summary>
<value>The number of logging events in the buffer.</value>
<remarks>
<para>
This number is guaranteed to be in the range 0 to <see cref="P:log4n
et.Util.CyclicBuffer.MaxSize"/>
(inclusive).
</para>
</remarks>
</member>
<member name="T:log4net.Util.EmptyCollection">
<summary>
An always empty <see cref="T:System.Collections.ICollection"/>.
</summary>
<remarks>
<para>
A singleton implementation of the <see cref="T:System.Collections.IC
ollection"/>
interface that always represents an empty collection.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.EmptyCollection.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.EmptyCol
lection"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to enforce the singleton pattern.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyCollection.CopyTo(System.Array,System.
Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.ICollecti
on"/> to an
<see cref="T:System.Array"/>, starting at a particular Array index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/>

that is the destination of the elements copied from
<see cref="T:System.Collections.ICollection"/>. The Array must have
zero-based
indexing.</param>
<param name="index">The zero-based index in array at which
copying begins.</param>
<remarks>
<para>
As the collection is empty no values are copied into the array.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyCollection.GetEnumerator">
<summary>
Returns an enumerator that can iterate through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> that can be used t
o
iterate through the collection.
</returns>
<remarks>
<para>
As the collection is empty a <see cref="T:log4net.Util.NullEnumerato
r"/> is returned.
</para>
</remarks>
</member>
<member name="F:log4net.Util.EmptyCollection.s_instance">
<summary>
The singleton instance of the empty collection.
</summary>
</member>
<member name="P:log4net.Util.EmptyCollection.Instance">
<summary>
Gets the singleton instance of the empty collection.
</summary>
<returns>The singleton instance of the empty collection.</returns>
<remarks>
<para>
Gets the singleton instance of the empty collection.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyCollection.IsSynchronized">
<summary>
Gets a value indicating if access to the <see cref="T:System.Collect
ions.ICollection"/> is synchronized (thread-safe).
</summary>
<value>
<b>true</b> if access to the <see cref="T:System.Collections.ICollec
tion"/> is synchronized (thread-safe); otherwise, <b>false</b>.
</value>
<remarks>
<para>
For the <see cref="T:log4net.Util.EmptyCollection"/> this property i
s always <c>true</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Col
lections.ICollection"/>.
</summary>
<value>
The number of elements contained in the <see cref="T:System.Collecti
ons.ICollection"/>.
</value>
<remarks>
<para>
As the collection is empty the <see cref="P:log4net.Util.EmptyCollec
tion.Count"/> is always <c>0</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyCollection.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the <see cr
ef="T:System.Collections.ICollection"/>.
</summary>
<value>
An object that can be used to synchronize access to the <see cref="T
:System.Collections.ICollection"/>.
</value>
<remarks>
<para>
As the collection is empty and thread safe and synchronized this ins
tance is also
the <see cref="P:log4net.Util.EmptyCollection.SyncRoot"/> object.
</para>
</remarks>
</member>
<member name="T:log4net.Util.EmptyDictionary">
<summary>
An always empty <see cref="T:System.Collections.IDictionary"/>.
</summary>
<remarks>
<para>
A singleton implementation of the <see cref="T:System.Collections.ID
ictionary"/>
interface that always represents an empty collection.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.EmptyDictionary.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.EmptyDic
tionary"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to enforce the singleton pattern.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyDictionary.CopyTo(System.Array,System.
Int32)">
<summary>
Copies the elements of the <see cref="T:System.Collections.ICollecti
on"/> to an
<see cref="T:System.Array"/>, starting at a particular Array index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/>

that is the destination of the elements copied from
<see cref="T:System.Collections.ICollection"/>. The Array must have
zero-based
indexing.</param>
<param name="index">The zero-based index in array at which
copying begins.</param>
<remarks>
<para>
As the collection is empty no values are copied into the array.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyDictionary.System#Collections#IEnumera
ble#GetEnumerator">
<summary>
Returns an enumerator that can iterate through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> that can be used t
o
iterate through the collection.
</returns>
<remarks>
<para>
As the collection is empty a <see cref="T:log4net.Util.NullEnumerato
r"/> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyDictionary.Add(System.Object,System.Ob
ject)">
<summary>
Adds an element with the provided key and value to the
<see cref="T:log4net.Util.EmptyDictionary"/>.
</summary>
<param name="key">The <see cref="T:System.Object"/> to use as the ke
y of the element to add.</param>
<param name="value">The <see cref="T:System.Object"/> to use as the
value of the element to add.</param>
<remarks>
<para>
As the collection is empty no new values can be added. A <see cref="
T:System.InvalidOperationException"/>
is thrown if this method is called.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">This dictionary
is always empty and cannot be modified.</exception>
</member>
<member name="M:log4net.Util.EmptyDictionary.Clear">
<summary>
Removes all elements from the <see cref="T:log4net.Util.EmptyDiction
ary"/>.
</summary>
<remarks>
<para>
As the collection is empty no values can be removed. A <see cref="T:
System.InvalidOperationException"/>
is thrown if this method is called.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">This dictionary
is always empty and cannot be modified.</exception>
</member>
<member name="M:log4net.Util.EmptyDictionary.Contains(System.Object)">
<summary>
Determines whether the <see cref="T:log4net.Util.EmptyDictionary"/>
contains an element
with the specified key.
</summary>
<param name="key">The key to locate in the <see cref="T:log4net.Util
.EmptyDictionary"/>.</param>
<returns><c>false</c></returns>
<remarks>
<para>
As the collection is empty the <see cref="M:log4net.Util.EmptyDictio
nary.Contains(System.Object)"/> method always returns <c>false</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyDictionary.GetEnumerator">
<summary>
Returns an enumerator that can iterate through a collection.
</summary>
<returns>
An <see cref="T:System.Collections.IEnumerator"/> that can be used t
o
iterate through the collection.
</returns>
<remarks>
<para>
As the collection is empty a <see cref="T:log4net.Util.NullEnumerato
r"/> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.EmptyDictionary.Remove(System.Object)">
<summary>
Removes the element with the specified key from the <see cref="T:log
4net.Util.EmptyDictionary"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<remarks>
<para>
As the collection is empty no values can be removed. A <see cref="T:
System.InvalidOperationException"/>
is thrown if this method is called.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">This dictionary
is always empty and cannot be modified.</exception>
</member>
<member name="F:log4net.Util.EmptyDictionary.s_instance">
<summary>
The singleton instance of the empty dictionary.
</summary>
</member>
<member name="P:log4net.Util.EmptyDictionary.Instance">
<summary>
Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDi
ctionary"/>.
</summary>
<returns>The singleton instance of the <see cref="T:log4net.Util.Emp
tyDictionary"/>.</returns>
<remarks>
<para>
Gets the singleton instance of the <see cref="T:log4net.Util.EmptyDi
ctionary"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.IsSynchronized">
<summary>
Gets a value indicating if access to the <see cref="T:System.Collect
ions.ICollection"/> is synchronized (thread-safe).
</summary>
<value>
<b>true</b> if access to the <see cref="T:System.Collections.ICollec
tion"/> is synchronized (thread-safe); otherwise, <b>false</b>.
</value>
<remarks>
<para>
For the <see cref="T:log4net.Util.EmptyCollection"/> this property i
s always <b>true</b>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Col
lections.ICollection"/>
</summary>
<value>
The number of elements contained in the <see cref="T:System.Collecti
ons.ICollection"/>.
</value>
<remarks>
<para>
As the collection is empty the <see cref="P:log4net.Util.EmptyDictio
nary.Count"/> is always <c>0</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the <see cr
ef="T:System.Collections.ICollection"/>.
</summary>
<value>
An object that can be used to synchronize access to the <see cref="T
:System.Collections.ICollection"/>.
</value>
<remarks>
<para>
As the collection is empty and thread safe and synchronized this ins
tance is also
the <see cref="P:log4net.Util.EmptyDictionary.SyncRoot"/> object.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.IsFixedSize">
<summary>
Gets a value indicating whether the <see cref="T:log4net.Util.EmptyD
ictionary"/> has a fixed size.
</summary>
<value><c>true</c></value>
<remarks>
<para>
As the collection is empty <see cref="P:log4net.Util.EmptyDictionary
.IsFixedSize"/> always returns <c>true</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.IsReadOnly">
<summary>
Gets a value indicating whether the <see cref="T:log4net.Util.EmptyD
ictionary"/> is read-only.
</summary>
<value><c>true</c></value>
<remarks>
<para>
As the collection is empty <see cref="P:log4net.Util.EmptyDictionary
.IsReadOnly"/> always returns <c>true</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.Keys">
<summary>
Gets an <see cref="T:System.Collections.ICollection"/> containing th
e keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.
</summary>
<value>An <see cref="T:System.Collections.ICollection"/> containing
the keys of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
<remarks>
<para>
As the collection is empty a <see cref="T:log4net.Util.EmptyCollecti
on"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.Values">
<summary>
Gets an <see cref="T:System.Collections.ICollection"/> containing th
e values of the <see cref="T:log4net.Util.EmptyDictionary"/>.
</summary>
<value>An <see cref="T:System.Collections.ICollection"/> containing
the values of the <see cref="T:log4net.Util.EmptyDictionary"/>.</value>
<remarks>
<para>
As the collection is empty a <see cref="T:log4net.Util.EmptyCollecti
on"/> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Util.EmptyDictionary.Item(System.Object)">
<summary>
Gets or sets the element with the specified key.
</summary>
<param name="key">The key of the element to get or set.</param>
<value><c>null</c></value>
<remarks>
<para>
As the collection is empty no values can be looked up or stored.
If the index getter is called then <c>null</c> is returned.
A <see cref="T:System.InvalidOperationException"/> is thrown if the
setter is called.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">This dictionary
is always empty and cannot be modified.</exception>
</member>
<member name="T:log4net.Util.FormattingInfo">
<summary>
Contain the information obtained when parsing formatting modifiers
in conversion modifiers.
</summary>
<remarks>
<para>
Holds the formatting information extracted from the format string by
the <see cref="T:log4net.Util.PatternParser"/>. This is used by the
<see cref="T:log4net.Util.PatternConverter"/>
objects when rendering the output.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.FormattingInfo.#ctor">
<summary>
Defaut Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Formatti
ngInfo"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.FormattingInfo.#ctor(System.Int32,System.In
t32,System.Boolean)">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Formatti
ngInfo"/> class
with the specified parameters.
</para>
</remarks>
</member>
<member name="P:log4net.Util.FormattingInfo.Min">
<summary>
Gets or sets the minimum value.
</summary>
<value>
The minimum value.
</value>
<remarks>
<para>
Gets or sets the minimum value.
</para>
</remarks>
</member>
<member name="P:log4net.Util.FormattingInfo.Max">
<summary>
Gets or sets the maximum value.
</summary>
<value>
The maximum value.
</value>
<remarks>
<para>
Gets or sets the maximum value.
</para>
</remarks>
</member>
<member name="P:log4net.Util.FormattingInfo.LeftAlign">
<summary>
Gets or sets a flag indicating whether left align is enabled
or not.
</summary>
<value>
A flag indicating whether left align is enabled or not.
</value>
<remarks>
<para>
Gets or sets a flag indicating whether left align is enabled or not.
</para>
</remarks>
</member>
<member name="T:log4net.Util.GlobalContextProperties">
<summary>
Implementation of Properties collection for the <see cref="T:log4net
.GlobalContext"/>
</summary>
<remarks>
<para>
This class implements a properties collection that is thread safe an
d supports both
storing properties and capturing a read only copy of the current pro
pertied.
</para>
<para>
This class is optimized to the scenario where the properties are rea
d frequently
and are modified infrequently.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.GlobalContextProperties.m_readOnlyPropertie
s">
<summary>
The read only copy of the properties.
</summary>
<remarks>
<para>
This variable is declared <c>volatile</c> to prevent the compiler an
d JIT from
reordering reads and writes of this thread performed on different th
reads.
</para>
</remarks>
</member>
<member name="F:log4net.Util.GlobalContextProperties.m_syncRoot">
<summary>
Lock object used to synchronize updates within this instance
</summary>
</member>
<member name="M:log4net.Util.GlobalContextProperties.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.GlobalCo
ntextProperties"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.GlobalContextProperties.Remove(System.Strin
g)">
<summary>
Remove a property from the global context
</summary>
<param name="key">the key for the entry to remove</param>
<remarks>
<para>
Removing an entry from the global context properties is relatively e
xpensive compared
with reading a value.
</para>
</remarks>
</member>
<member name="M:log4net.Util.GlobalContextProperties.Clear">
<summary>
Clear the global context properties
</summary>
</member>
<member name="M:log4net.Util.GlobalContextProperties.GetReadOnlyProperti
es">
<summary>
Get a readonly immutable copy of the properties
</summary>
<returns>the current global context properties</returns>
<remarks>
<para>
This implementation is fast because the GlobalContextProperties clas
s
stores a readonly copy of the properties.
</para>
</remarks>
</member>
<member name="P:log4net.Util.GlobalContextProperties.Item(System.String)
">
<summary>
Gets or sets the value of a property
</summary>
<value>
The value for the property with the specified key
</value>
<remarks>
<para>
Reading the value for a key is faster than setting the value.
When the value is written a new read only copy of
the properties is created.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ILogExtensions">
<summary>
The static class ILogExtensions contains a set of widely used
methods that ease the interaction with the ILog interface implementa
tions.
</summary>
<remarks>
<para>
This class contains methods for logging at different levels and chec
ks the
properties for determining if those logging levels are enabled in th
e current
configuration.
</para>
</remarks>
<example>Simple example of logging messages
<code lang="C#">
using log4net.Util;

ILog log = LogManager.GetLogger("application-log");

log.InfoExt("Application Start");
log.DebugExt("This is a debug message");
</code>
</example>
</member>
<member name="F:log4net.Util.ILogExtensions.declaringType">
<summary>
The fully qualified type of the Logger class.
</summary>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System
.Func{System.Object})">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsDebugEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>INFO</c> enabled, then it conv
erts
the message object (retrieved by invocation of the provided callback
) to a
string by invoking the appropriate <see cref="T:log4net.ObjectRender
er.IObjectRenderer"/>.
It then proceeds to call all the registered appenders in this logger

and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,Syste
m.Func{System.Object},System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System
.Func{System.Object},System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System
.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Debug"/> level.</overloads> //TODO
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsDebugEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>INFO</c> enabled, then it conve
rts
the message object (passed as parameter) to a string by invoking the
appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,Syste
m.Object,System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System
.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Debug"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugFormatExt(log4net.ILog,
System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugFormatExt(log4net.ILog,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugFormatExt(log4net.ILog,
System.IFormatProvider,System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugFormatExt(log4net.ILog,
System.String,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.DebugFormatExt(log4net.ILog,
System.String,System.Object,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Debug"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.DebugExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Debug(System.Object)"/>
<seealso cref="P:log4net.ILog.IsDebugEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.
Func{System.Object})">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Info"/
> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsInfoEna
bled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>INFO</c> enabled, then it conv
erts
the message object (retrieved by invocation of the provided callback
) to a
string by invoking the appropriate <see cref="T:log4net.ObjectRender
er.IObjectRenderer"/>.
It then proceeds to call all the registered appenders in this logger

and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System
.Func{System.Object},System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.
Func{System.Object},System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Info"/
> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILo
g,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.
Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Info"/> level.</overloads> //TODO
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Info"/
> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>INFO</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsInfoEna
bled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>INFO</c> enabled, then it conve
rts
the message object (passed as parameter) to a string by invoking the
appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System
.Object,System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.
Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Info"/
> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILo
g,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoFormatExt(log4net.ILog,S
ystem.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoFormatExt(log4net.ILog,S
ystem.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoFormatExt(log4net.ILog,S
ystem.IFormatProvider,System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoFormatExt(log4net.ILog,S
ystem.String,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.InfoFormatExt(log4net.ILog,S
ystem.String,System.Object,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Info"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.InfoExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Info(System.Object)"/>
<seealso cref="P:log4net.ILog.IsInfoEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.
Func{System.Object})">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<remarks>
<para>
This method first checks if this logger is <c>WARN</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsWarnEna
bled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>WARN</c> enabled, then it conv
erts
the message object (retrieved by invocation of the provided callback
) to a
string by invoking the appropriate <see cref="T:log4net.ObjectRender
er.IObjectRenderer"/>.
It then proceeds to call all the registered appenders in this logger

and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System
.Func{System.Object},System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.
Func{System.Object},System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILo
g,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.
Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Warn"/> level.</overloads> //TODO
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>WARN</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsWarnEna
bled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>WARN</c> enabled, then it conve
rts
the message object (passed as parameter) to a string by invoking the
appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System
.Object,System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.
Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Warn"/
> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILo
g,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnFormatExt(log4net.ILog,S
ystem.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnFormatExt(log4net.ILog,S
ystem.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnFormatExt(log4net.ILog,S
ystem.IFormatProvider,System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnFormatExt(log4net.ILog,S
ystem.String,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.WarnFormatExt(log4net.ILog,S
ystem.String,System.Object,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Warn"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.WarnExt(log4net.ILog,System.Object,Sy
stem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Warn(System.Object)"/>
<seealso cref="P:log4net.ILog.IsWarnEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System
.Func{System.Object})">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Error"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<remarks>
<para>
This method first checks if this logger is <c>ERROR</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsErrorEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>ERROR</c> enabled, then it con
verts
the message object (retrieved by invocation of the provided callback
) to a
string by invoking the appropriate <see cref="T:log4net.ObjectRender
er.IObjectRenderer"/>.
It then proceeds to call all the registered appenders in this logger

and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,Syste
m.Func{System.Object},System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System
.Func{System.Object},System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Error"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System
.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Error"/> level.</overloads> //TODO
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Error"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>ERROR</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsErrorEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>ERROR</c> enabled, then it conv
erts
the message object (passed as parameter) to a string by invoking the
appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,Syste
m.Object,System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System
.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Error"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorFormatExt(log4net.ILog,
System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorFormatExt(log4net.ILog,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorFormatExt(log4net.ILog,
System.IFormatProvider,System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorFormatExt(log4net.ILog,
System.String,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.ErrorFormatExt(log4net.ILog,
System.String,System.Object,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Error"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.ErrorExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Error(System.Object)"/>
<seealso cref="P:log4net.ILog.IsErrorEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System
.Func{System.Object})">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<remarks>
<para>
This method first checks if this logger is <c>FATAL</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsFatalEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>FATAL</c> enabled, then it con
verts
the message object (retrieved by invocation of the provided callback
) to a
string by invoking the appropriate <see cref="T:log4net.ObjectRender
er.IObjectRenderer"/>.
It then proceeds to call all the registered appenders in this logger

and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,Syste
m.Func{System.Object},System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System
.Func{System.Object},System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="callback">The lambda expression that gets the object to
log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System
.Object)">
<overloads>Log a message object with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.</overloads> //TODO
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<remarks>
<para>
This method first checks if this logger is <c>FATAL</c>
enabled by reading the value <seealso cref="P:log4net.ILog.IsFatalEn
abled"/> property.
This check happens always and does not depend on the <seealso cref="
T:log4net.ILog"/>
implementation. If this logger is <c>FATAL</c> enabled, then it conv
erts
the message object (passed as parameter) to a string by invoking the
appropriate
<see cref="T:log4net.ObjectRenderer.IObjectRenderer"/>. It then
proceeds to call all the registered appenders in this logger
and also higher in the hierarchy depending on the value of
the additivity flag.
</para>
<para><b>WARNING</b> Note that passing an <see cref="T:System.Except
ion"/>
to this method will print the name of the <see cref="T:System.Except
ion"/>
but no stack trace. To print a stack trace use the
<see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,Syste
m.Object,System.Exception)"/> form instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System
.Object,System.Exception)">
<summary>
Log a message object with the <see cref="F:log4net.Core.Level.Fatal"
/> level including
the stack trace of the <see cref="T:System.Exception"/> passed
as a parameter.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="message">The message object to log.</param>
<param name="exception">The exception to log, including its stack tr
ace.</param>
<remarks>
<para>
See the <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.IL
og,System.Object)"/> form for more detailed information.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalFormatExt(log4net.ILog,
System.String,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalFormatExt(log4net.ILog,
System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalFormatExt(log4net.ILog,
System.IFormatProvider,System.String,System.Object[])">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information</param>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="args">An Object array containing zero or more objects t
o format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalFormatExt(log4net.ILog,
System.String,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="M:log4net.Util.ILogExtensions.FatalFormatExt(log4net.ILog,
System.String,System.Object,System.Object,System.Object)">
<summary>
Logs a formatted message string with the <see cref="F:log4net.Core.L
evel.Fatal"/> level.
</summary>
<param name="logger">The logger on which the message is logged.</par
am>
<param name="format">A String containing zero or more format items</
param>
<param name="arg0">An Object to format</param>
<param name="arg1">An Object to format</param>
<param name="arg2">An Object to format</param>
<remarks>
<para>
The message is formatted using the <c>String.Format</c> method. See
<see cref="M:System.String.Format(System.String,System.Object[])"/>
for details of the syntax of the format string and the behavior
of the formatting.
</para>
<para>
This method does not take an <see cref="T:System.Exception"/> object
to include in the
log event. To pass an <see cref="T:System.Exception"/> use one of th
e <see cref="M:log4net.Util.ILogExtensions.FatalExt(log4net.ILog,System.Object,S
ystem.Exception)"/>
methods instead.
</para>
</remarks>
<seealso cref="M:log4net.ILog.Fatal(System.Object)"/>
<seealso cref="P:log4net.ILog.IsFatalEnabled"/>
</member>
<member name="T:log4net.Util.LevelMapping">
<summary>
Manages a mapping from levels to <see cref="T:log4net.Util.LevelMapp
ingEntry"/>
</summary>
<remarks>
<para>
Manages an ordered mapping from <see cref="T:log4net.Core.Level"/> i
nstances
to <see cref="T:log4net.Util.LevelMappingEntry"/> subclasses.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.LevelMapping.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Initialise a new instance of <see cref="T:log4net.Util.LevelMapping"
/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LevelMapping.Add(log4net.Util.LevelMappingE
ntry)">
<summary>
Add a <see cref="T:log4net.Util.LevelMappingEntry"/> to this mapping
</summary>
<param name="entry">the entry to add</param>
<remarks>
<para>
If a <see cref="T:log4net.Util.LevelMappingEntry"/> has previously b
een added
for the same <see cref="T:log4net.Core.Level"/> then that entry will
be
overwritten.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LevelMapping.Lookup(log4net.Core.Level)">
<summary>
Lookup the mapping for the specified level
</summary>
<param name="level">the level to lookup</param>
<returns>the <see cref="T:log4net.Util.LevelMappingEntry"/> for the
level or <c>null</c> if no mapping found</returns>
<remarks>
<para>
Lookup the value for the specified level. Finds the nearest
mapping value for the level that is equal to or less than the
<paramref name="level"/> specified.
</para>
<para>
If no mapping could be found then <c>null</c> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LevelMapping.ActivateOptions">
<summary>
Initialize options
</summary>
<remarks>
<para>
Caches the sorted list of <see cref="T:log4net.Util.LevelMappingEntr
y"/> in an array
</para>
</remarks>
</member>
<member name="T:log4net.Util.LogicalThreadContextProperties">
<summary>
Implementation of Properties collection for the <see cref="T:log4net
.LogicalThreadContext"/>
</summary>
<remarks>
<para>
Class implements a collection of properties that is specific to each
thread.
The class is not synchronized as each thread has its own <see cref="
T:log4net.Util.PropertiesDictionary"/>.
</para>
<para>
This class stores its properties in a slot on the <see cref="T:Syste
m.Runtime.Remoting.Messaging.CallContext"/> named
<c>log4net.Util.LogicalThreadContextProperties</c>.
</para>
<para>
The <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> re
quires a link time
<see cref="T:System.Security.Permissions.SecurityPermission"/> for t
he
<see cref="F:System.Security.Permissions.SecurityPermissionFlag.Infr
astructure"/>.
If the calling code does not have this permission then this context
will be disabled.
It will not store any property values set on it.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.LogicalThreadContextProperties.m_disabled">
<summary>
Flag used to disable this context if we don't have permission to acc
ess the CallContext.
</summary>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.LogicalT
hreadContextProperties"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.Remove(Syste
m.String)">
<summary>
Remove a property
</summary>
<param name="key">the key for the entry to remove</param>
<remarks>
<para>
Remove the value for the specified <paramref name="key"/> from the c
ontext.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.Clear">
<summary>
Clear all the context properties
</summary>
<remarks>
<para>
Clear all the context properties
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.GetPropertie
s(System.Boolean)">
<summary>
Get the PropertiesDictionary stored in the LocalDataStoreSlot for th
is thread.
</summary>
<param name="create">create the dictionary if it does not exist, oth
erwise return null if is does not exist</param>
<returns>the properties for this thread</returns>
<remarks>
<para>
The collection returned is only to be used on the calling thread. If
the
caller needs to share the collection between different threads then
the
caller must clone the collection before doings so.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.GetCallConte
xtData">
<summary>
Gets the call context get data.
</summary>
<returns>The peroperties dictionary stored in the call context</retu
rns>
<remarks>
The <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> me
thod <see cref="M:System.Runtime.Remoting.Messaging.CallContext.GetData(System.S
tring)"/> has a
security link demand, therfore we must put the method call in a sepe
rate method
that we can wrap in an exception handler.
</remarks>
</member>
<member name="M:log4net.Util.LogicalThreadContextProperties.SetCallConte
xtData(log4net.Util.PropertiesDictionary)">
<summary>
Sets the call context data.
</summary>
<param name="properties">The properties.</param>
<remarks>
The <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> me
thod <see cref="M:System.Runtime.Remoting.Messaging.CallContext.SetData(System.S
tring,System.Object)"/> has a
security link demand, therfore we must put the method call in a sepe
rate method
that we can wrap in an exception handler.
</remarks>
</member>
<member name="F:log4net.Util.LogicalThreadContextProperties.declaringTyp
e">
<summary>
The fully qualified type of the LogicalThreadContextProperties class
.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Util.LogicalThreadContextProperties.Item(System.
String)">
<summary>
Gets or sets the value of a property
</summary>
<value>
The value for the property with the specified key
</value>
<remarks>
<para>
Get or set the property value for the <paramref name="key"/> specifi
ed.
</para>
</remarks>
</member>
<member name="T:log4net.Util.LogReceivedEventHandler">
<summary>

</summary>
<param name="source"></param>
<param name="e"></param>
</member>
<member name="T:log4net.Util.LogLog">
<summary>
Outputs log statements from within the log4net assembly.
</summary>
<remarks>
<para>
Log4net components cannot make log4net logging calls. However, it is
sometimes useful for the user to learn about what log4net is
doing.
</para>
<para>
All log4net internal debug calls go to the standard output stream
whereas internal error messages are sent to the standard error outpu
t
stream.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.LogLog.ToString">
<summary>
Formats Prefix, Source, and Message in the same format as the value
sent to Console.Out and Trace.Write.
</summary>
<returns></returns>
</member>
<member name="M:log4net.Util.LogLog.#ctor(System.Type,System.String,Syst
em.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.LogLog"/
> class.
</summary>
<param name="source"></param>
<param name="prefix"></param>
<param name="message"></param>
<param name="exception"></param>
</member>
<member name="M:log4net.Util.LogLog.#cctor">
<summary>
Static constructor that initializes logging by reading
settings from the application configuration file.
</summary>
<remarks>
<para>
The <c>log4net.Internal.Debug</c> application setting
controls internal debugging. This setting should be set
to <c>true</c> to enable debugging.
</para>
<para>
The <c>log4net.Internal.Quiet</c> application setting
suppresses all internal logging including error messages.
This setting should be set to <c>true</c> to enable message
suppression.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.OnLogReceived(System.Type,System.Str
ing,System.String,System.Exception)">
<summary>
Raises the LogReceived event when an internal messages is received.
</summary>
<param name="source"></param>
<param name="prefix"></param>
<param name="message"></param>
<param name="exception"></param>
</member>
<member name="M:log4net.Util.LogLog.Debug(System.Type,System.String)">
<summary>
Writes log4net internal debug messages to the
standard output stream.
</summary>
<param name="source"></param>
<param name="message">The message to log.</param>
<remarks>
<para>
All internal debug messages are prepended with
the string "log4net: ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.Debug(System.Type,System.String,Syst
em.Exception)">
<summary>
Writes log4net internal debug messages to the
standard output stream.
</summary>
<param name="source">The Type that generated this message.</param>
<param name="message">The message to log.</param>
<param name="exception">An exception to log.</param>
<remarks>
<para>
All internal debug messages are prepended with
the string "log4net: ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.Warn(System.Type,System.String)">
<summary>
Writes log4net internal warning messages to the
standard error stream.
</summary>
<param name="source">The Type that generated this message.</param>
<param name="message">The message to log.</param>
<remarks>
<para>
All internal warning messages are prepended with
the string "log4net:WARN ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.Warn(System.Type,System.String,Syste
m.Exception)">
<summary>
Writes log4net internal warning messages to the
standard error stream.
</summary>
<param name="source">The Type that generated this message.</param>
<param name="message">The message to log.</param>
<param name="exception">An exception to log.</param>
<remarks>
<para>
All internal warning messages are prepended with
the string "log4net:WARN ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.Error(System.Type,System.String)">
<summary>
Writes log4net internal error messages to the
standard error stream.
</summary>
<param name="source">The Type that generated this message.</param>
<param name="message">The message to log.</param>
<remarks>
<para>
All internal error messages are prepended with
the string "log4net:ERROR ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.Error(System.Type,System.String,Syst
em.Exception)">
<summary>
Writes log4net internal error messages to the
standard error stream.
</summary>
<param name="source">The Type that generated this message.</param>
<param name="message">The message to log.</param>
<param name="exception">An exception to log.</param>
<remarks>
<para>
All internal debug messages are prepended with
the string "log4net:ERROR ".
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.EmitOutLine(System.String)">
<summary>
Writes output to the standard output stream.
</summary>
<param name="message">The message to log.</param>
<remarks>
<para>
Writes to both Console.Out and System.Diagnostics.Trace.
Note that the System.Diagnostics.Trace is not supported
on the Compact Framework.
</para>
<para>
If the AppDomain is not configured with a config file then
the call to System.Diagnostics.Trace may fail. This is only
an issue if you are programmatically creating your own AppDomains.
</para>
</remarks>
</member>
<member name="M:log4net.Util.LogLog.EmitErrorLine(System.String)">
<summary>
Writes output to the standard error stream.
</summary>
<param name="message">The message to log.</param>
<remarks>
<para>
Writes to both Console.Error and System.Diagnostics.Trace.
Note that the System.Diagnostics.Trace is not supported
on the Compact Framework.
</para>
<para>
If the AppDomain is not configured with a config file then
the call to System.Diagnostics.Trace may fail. This is only
an issue if you are programmatically creating your own AppDomains.
</para>
</remarks>
</member>
<member name="F:log4net.Util.LogLog.s_debugEnabled">
<summary>
Default debug level
</summary>
</member>
<member name="F:log4net.Util.LogLog.s_quietMode">
<summary>
In quietMode not even errors generate any output.
</summary>
</member>
<member name="E:log4net.Util.LogLog.LogReceived">
<summary>
The event raised when an internal message has been received.
</summary>
</member>
<member name="P:log4net.Util.LogLog.Source">
<summary>
The Type that generated the internal message.
</summary>
</member>
<member name="P:log4net.Util.LogLog.TimeStamp">
<summary>
The DateTime stamp of when the internal message was received.
</summary>
</member>
<member name="P:log4net.Util.LogLog.Prefix">
<summary>
A string indicating the severity of the internal message.
</summary>
<remarks>
"log4net: ",
"log4net:ERROR ",
"log4net:WARN "
</remarks>
</member>
<member name="P:log4net.Util.LogLog.Message">
<summary>
The internal log message.
</summary>
</member>
<member name="P:log4net.Util.LogLog.Exception">
<summary>
The Exception related to the message.
</summary>
<remarks>
Optional. Will be null if no Exception was passed.
</remarks>
</member>
<member name="P:log4net.Util.LogLog.InternalDebugging">
<summary>
Gets or sets a value indicating whether log4net internal logging
is enabled or disabled.
</summary>
<value>
<c>true</c> if log4net internal logging is enabled, otherwise
<c>false</c>.
</value>
<remarks>
<para>
When set to <c>true</c>, internal debug level logging will be
displayed.
</para>
<para>
This value can be set by setting the application setting
<c>log4net.Internal.Debug</c> in the application configuration
file.
</para>
<para>
The default value is <c>false</c>, i.e. debugging is
disabled.
</para>
</remarks>
<example>
<para>
The following example enables internal debugging using the
application configuration file :
</para>
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true" />
</appSettings>
</configuration>
</code>
</example>
</member>
<member name="P:log4net.Util.LogLog.QuietMode">
<summary>
Gets or sets a value indicating whether log4net should generate no o
utput
from internal logging, not even for errors.
</summary>
<value>
<c>true</c> if log4net should generate no output at all from interna
l
logging, otherwise <c>false</c>.
</value>
<remarks>
<para>
When set to <c>true</c> will cause internal logging at all levels to
be
suppressed. This means that no warning or error reports will be logg
ed.
This option overrides the <see cref="P:log4net.Util.LogLog.InternalD
ebugging"/> setting and
disables all debug also.
</para>
<para>This value can be set by setting the application setting
<c>log4net.Internal.Quiet</c> in the application configuration file.
</para>
<para>
The default value is <c>false</c>, i.e. internal logging is not
disabled.
</para>
</remarks>
<example>
The following example disables internal logging using the
application configuration file :
<code lang="XML" escaped="true">
<configuration>
<appSettings>
<add key="log4net.Internal.Quiet" value="true"/>
</appSettings>
</configuration>
</code>
</example>
</member>
<member name="P:log4net.Util.LogLog.EmitInternalMessages">
<summary>

</summary>
</member>
<member name="P:log4net.Util.LogLog.IsDebugEnabled">
<summary>
Test if LogLog.Debug is enabled for output.
</summary>
<value>
<c>true</c> if Debug is enabled
</value>
<remarks>
<para>
Test if LogLog.Debug is enabled for output.
</para>
</remarks>
</member>
<member name="P:log4net.Util.LogLog.IsWarnEnabled">
<summary>
Test if LogLog.Warn is enabled for output.
</summary>
<value>
<c>true</c> if Warn is enabled
</value>
<remarks>
<para>
Test if LogLog.Warn is enabled for output.
</para>
</remarks>
</member>
<member name="P:log4net.Util.LogLog.IsErrorEnabled">
<summary>
Test if LogLog.Error is enabled for output.
</summary>
<value>
<c>true</c> if Error is enabled
</value>
<remarks>
<para>
Test if LogLog.Error is enabled for output.
</para>
</remarks>
</member>
<member name="T:log4net.Util.LogLog.LogReceivedAdapter">
<summary>
Subscribes to the LogLog.LogReceived event and stores messages
to the supplied IList instance.
</summary>
</member>
<member name="M:log4net.Util.LogLog.LogReceivedAdapter.#ctor(System.Coll
ections.IList)">
<summary>

</summary>
<param name="items"></param>
</member>
<member name="M:log4net.Util.LogLog.LogReceivedAdapter.Dispose">
<summary>

</summary>
</member>
<member name="P:log4net.Util.LogLog.LogReceivedAdapter.Items">
<summary>

</summary>
</member>
<member name="T:log4net.Util.LogReceivedEventArgs">
<summary>

</summary>
</member>
<member name="M:log4net.Util.LogReceivedEventArgs.#ctor(log4net.Util.Log
Log)">
<summary>

</summary>
<param name="loglog"></param>
</member>
<member name="P:log4net.Util.LogReceivedEventArgs.LogLog">
<summary>

</summary>
</member>
<member name="T:log4net.Util.NativeError">
<summary>
Represents a native error code and message.
</summary>
<remarks>
<para>
Represents a Win32 platform native error.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.NativeError.#ctor(System.Int32,System.Strin
g)">
<summary>
Create an instance of the <see cref="T:log4net.Util.NativeError"/> c
lass with the specified
error number and message.
</summary>
<param name="number">The number of the native error.</param>
<param name="message">The message of the native error.</param>
<remarks>
<para>
Create an instance of the <see cref="T:log4net.Util.NativeError"/> c
lass with the specified
error number and message.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NativeError.GetLastError">
<summary>
Create a new instance of the <see cref="T:log4net.Util.NativeError"/
> class for the last Windows error.
</summary>
<returns>
An instance of the <see cref="T:log4net.Util.NativeError"/> class fo
r the last windows error.
</returns>
<remarks>
<para>
The message for the <see cref="M:System.Runtime.InteropServices.Mars
hal.GetLastWin32Error"/> error number is lookup up using the
native Win32 <c>FormatMessage</c> function.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NativeError.GetError(System.Int32)">
<summary>
Create a new instance of the <see cref="T:log4net.Util.NativeError"/
> class.
</summary>
<param name="number">the error number for the native error</param>
<returns>
An instance of the <see cref="T:log4net.Util.NativeError"/> class fo
r the specified
error number.
</returns>
<remarks>
<para>
The message for the specified error number is lookup up using the
native Win32 <c>FormatMessage</c> function.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NativeError.GetErrorMessage(System.Int32)">
<summary>
Retrieves the message corresponding with a Win32 message identifier.
</summary>
<param name="messageId">Message identifier for the requested message
.</param>
<returns>
The message corresponding with the specified message identifier.
</returns>
<remarks>
<para>
The message will be searched for in system message-table resource(s)
using the native <c>FormatMessage</c> function.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NativeError.ToString">
<summary>
Return error information string
</summary>
<returns>error information string</returns>
<remarks>
<para>
Return error information string
</para>
</remarks>
</member>
<member name="M:log4net.Util.NativeError.FormatMessage(System.Int32,Syst
em.IntPtr@,System.Int32,System.Int32,System.String@,System.Int32,System.IntPtr)"
>
<summary>
Formats a message string.
</summary>
<param name="dwFlags">Formatting options, and how to interpret the <
paramref name="lpSource" /> parameter.</param>
<param name="lpSource">Location of the message definition.</param>
<param name="dwMessageId">Message identifier for the requested messa
ge.</param>
<param name="dwLanguageId">Language identifier for the requested mes
sage.</param>
<param name="lpBuffer">If <paramref name="dwFlags" /> includes FORMA
T_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the <c>LocalAll
oc</c> function, and places the pointer to the buffer at the address specified i
n <paramref name="lpBuffer" />.</param>
<param name="nSize">If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is no
t set, this parameter specifies the maximum number of TCHARs that can be stored
in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter s
pecifies the minimum number of TCHARs to allocate for an output buffer.</param>
<param name="Arguments">Pointer to an array of values that are used
as insert values in the formatted message.</param>
<remarks>
<para>
The function requires a message definition as input. The message def
inition can come from a
buffer passed into the function. It can come from a message table re
source in an
already-loaded module. Or the caller can ask the function to search
the system's message
table resource(s) for the message definition. The function finds the
message definition
in a message table resource based on a message identifier and a lang
uage identifier.
The function copies the formatted message text to an output buffer,
processing any embedded
insert sequences if requested.
</para>
<para>
To prevent the usage of unsafe code, this stub does not support inse
rting values in the formatted message.
</para>
</remarks>
<returns>
<para>
If the function succeeds, the return value is the number of TCHARs s
tored in the output
buffer, excluding the terminating null character.
</para>
<para>
If the function fails, the return value is zero. To get extended err
or information,
call <see cref="M:Marshal.GetLastWin32Error()" />.
</para>
</returns>
</member>
<member name="P:log4net.Util.NativeError.Number">
<summary>
Gets the number of the native error.
</summary>
<value>
The number of the native error.
</value>
<remarks>
<para>
Gets the number of the native error.
</para>
</remarks>
</member>
<member name="P:log4net.Util.NativeError.Message">
<summary>
Gets the message of the native error.
</summary>
<value>
The message of the native error.
</value>
<remarks>
<para>
</para>
Gets the message of the native error.
</remarks>
</member>
<member name="T:log4net.Util.NullDictionaryEnumerator">
<summary>
An always empty <see cref="T:System.Collections.IDictionaryEnumerato
r"/>.
</summary>
<remarks>
<para>
A singleton implementation of the <see cref="T:System.Collections.ID
ictionaryEnumerator"/> over a collection
that is empty and not modifiable.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.NullDictionaryEnumerator.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.NullDict
ionaryEnumerator"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to enforce the singleton pattern.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullDictionaryEnumerator.MoveNext">
<summary>
Test if the enumerator can advance, if so advance.
</summary>
<returns><c>false</c> as the <see cref="T:log4net.Util.NullDictionar
yEnumerator"/> cannot advance.</returns>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullDictionaryEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="M:
log4net.Util.NullDictionaryEnumerator.MoveNext"/>
will always return <c>false</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullDictionaryEnumerator.Reset">
<summary>
Resets the enumerator back to the start.
</summary>
<remarks>
<para>
As the enumerator is over an empty collection <see cref="M:log4net.U
til.NullDictionaryEnumerator.Reset"/> does nothing.
</para>
</remarks>
</member>
<member name="F:log4net.Util.NullDictionaryEnumerator.s_instance">
<summary>
The singleton instance of the <see cref="T:log4net.Util.NullDictiona
ryEnumerator"/>.
</summary>
</member>
<member name="P:log4net.Util.NullDictionaryEnumerator.Instance">
<summary>
Gets the singleton instance of the <see cref="T:log4net.Util.NullDic
tionaryEnumerator"/>.
</summary>
<returns>The singleton instance of the <see cref="T:log4net.Util.Nul
lDictionaryEnumerator"/>.</returns>
<remarks>
<para>
Gets the singleton instance of the <see cref="T:log4net.Util.NullDic
tionaryEnumerator"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.NullDictionaryEnumerator.Current">
<summary>
Gets the current object from the enumerator.
</summary>
<remarks>
Throws an <see cref="T:System.InvalidOperationException"/> because t
he
<see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a cu
rrent value.
</remarks>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullDictionaryEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="P:
log4net.Util.NullDictionaryEnumerator.Current"/>
will throw an <see cref="T:System.InvalidOperationException"/>.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">The collection
is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
cannot be positioned over a valid location.</exception>
</member>
<member name="P:log4net.Util.NullDictionaryEnumerator.Key">
<summary>
Gets the current key from the enumerator.
</summary>
<remarks>
Throws an exception because the <see cref="T:log4net.Util.NullDictio
naryEnumerator"/>
never has a current value.
</remarks>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullDictionaryEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="P:
log4net.Util.NullDictionaryEnumerator.Key"/>
will throw an <see cref="T:System.InvalidOperationException"/>.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">The collection
is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
cannot be positioned over a valid location.</exception>
</member>
<member name="P:log4net.Util.NullDictionaryEnumerator.Value">
<summary>
Gets the current value from the enumerator.
</summary>
<value>The current value from the enumerator.</value>
<remarks>
Throws an <see cref="T:System.InvalidOperationException"/> because t
he
<see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a cu
rrent value.
</remarks>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullDictionaryEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="P:
log4net.Util.NullDictionaryEnumerator.Value"/>
will throw an <see cref="T:System.InvalidOperationException"/>.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">The collection
is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
cannot be positioned over a valid location.</exception>
</member>
<member name="P:log4net.Util.NullDictionaryEnumerator.Entry">
<summary>
Gets the current entry from the enumerator.
</summary>
<remarks>
Throws an <see cref="T:System.InvalidOperationException"/> because t
he
<see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a cu
rrent entry.
</remarks>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullDictionaryEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="P:
log4net.Util.NullDictionaryEnumerator.Entry"/>
will throw an <see cref="T:System.InvalidOperationException"/>.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">The collection
is empty and <see cref="P:log4net.Util.NullDictionaryEnumerator.Current"/>
cannot be positioned over a valid location.</exception>
</member>
<member name="T:log4net.Util.NullEnumerator">
<summary>
An always empty <see cref="T:System.Collections.IEnumerator"/>.
</summary>
<remarks>
<para>
A singleton implementation of the <see cref="T:System.Collections.IE
numerator"/> over a collection
that is empty and not modifiable.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.NullEnumerator.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.NullEnum
erator"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to enforce the singleton pattern.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullEnumerator.MoveNext">
<summary>
Test if the enumerator can advance, if so advance
</summary>
<returns><c>false</c> as the <see cref="T:log4net.Util.NullEnumerato
r"/> cannot advance.</returns>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="M:
log4net.Util.NullEnumerator.MoveNext"/>
will always return <c>false</c>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullEnumerator.Reset">
<summary>
Resets the enumerator back to the start.
</summary>
<remarks>
<para>
As the enumerator is over an empty collection <see cref="M:log4net.U
til.NullEnumerator.Reset"/> does nothing.
</para>
</remarks>
</member>
<member name="F:log4net.Util.NullEnumerator.s_instance">
<summary>
The singleton instance of the <see cref="T:log4net.Util.NullEnumerat
or"/>.
</summary>
</member>
<member name="P:log4net.Util.NullEnumerator.Instance">
<summary>
Get the singleton instance of the <see cref="T:log4net.Util.NullEnum
erator"/>.
</summary>
<returns>The singleton instance of the <see cref="T:log4net.Util.Nul
lEnumerator"/>.</returns>
<remarks>
<para>
Gets the singleton instance of the <see cref="T:log4net.Util.NullEnu
merator"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.NullEnumerator.Current">
<summary>
Gets the current object from the enumerator.
</summary>
<remarks>
Throws an <see cref="T:System.InvalidOperationException"/> because t
he
<see cref="T:log4net.Util.NullDictionaryEnumerator"/> never has a cu
rrent value.
</remarks>
<remarks>
<para>
As the enumerator is over an empty collection its <see cref="P:log4n
et.Util.NullEnumerator.Current"/>
value cannot be moved over a valid position, therefore <see cref="P:
log4net.Util.NullEnumerator.Current"/>
will throw an <see cref="T:System.InvalidOperationException"/>.
</para>
</remarks>
<exception cref="T:System.InvalidOperationException">The collection
is empty and <see cref="P:log4net.Util.NullEnumerator.Current"/>
cannot be positioned over a valid location.</exception>
</member>
<member name="T:log4net.Util.NullSecurityContext">
<summary>
A SecurityContext used when a SecurityContext is not required
</summary>
<remarks>
<para>
The <see cref="T:log4net.Util.NullSecurityContext"/> is a no-op impl
ementation of the
<see cref="T:log4net.Core.SecurityContext"/> base class. It is used
where a <see cref="T:log4net.Core.SecurityContext"/>
is required but one has not been provided.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.NullSecurityContext.Instance">
<summary>
Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"
/>
</summary>
<remarks>
<para>
Singleton instance of <see cref="T:log4net.Util.NullSecurityContext"
/>
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullSecurityContext.#ctor">
<summary>
Private constructor
</summary>
<remarks>
<para>
Private constructor for singleton pattern.
</para>
</remarks>
</member>
<member name="M:log4net.Util.NullSecurityContext.Impersonate(System.Obje
ct)">
<summary>
Impersonate this SecurityContext
</summary>
<param name="state">State supplied by the caller</param>
<returns><c>null</c></returns>
<remarks>
<para>
No impersonation is done and <c>null</c> is always returned.
</para>
</remarks>
</member>
<member name="T:log4net.Util.OnlyOnceErrorHandler">
<summary>
Implements log4net's default error handling policy which consists
of emitting a message for the first error in an appender and
ignoring all subsequent errors.
</summary>
<remarks>
<para>
The error message is processed using the LogLog sub-system by defaul
t.
</para>
<para>
This policy aims at protecting an otherwise working application
from being flooded with error messages when logging fails.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Ron Grabowski</author>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor">
<summary>
Default Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnce
ErrorHandler"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="prefix">The prefix to use for each message.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.OnlyOnce
ErrorHandler"/> class
with the specified prefix.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.Reset">
<summary>
Reset the error handler back to its initial disabled state.
</summary>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,Sy
stem.Exception,log4net.Core.ErrorCode)">
<summary>
Log an Error
</summary>
<param name="message">The error message.</param>
<param name="e">The exception.</param>
<param name="errorCode">The internal error code.</param>
<remarks>
<para>
Invokes <see cref="M:log4net.Util.OnlyOnceErrorHandler.FirstError(Sy
stem.String,System.Exception,log4net.Core.ErrorCode)"/> if and only if this is t
he first error or the first error after <see cref="M:log4net.Util.OnlyOnceErrorH
andler.Reset"/> has been called.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.FirstError(System.Stri
ng,System.Exception,log4net.Core.ErrorCode)">
<summary>
Log the very first error
</summary>
<param name="message">The error message.</param>
<param name="e">The exception.</param>
<param name="errorCode">The internal error code.</param>
<remarks>
<para>
Sends the error information to <see cref="T:log4net.Util.LogLog"/>'s
Error method.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String,Sy
stem.Exception)">
<summary>
Log an Error
</summary>
<param name="message">The error message.</param>
<param name="e">The exception.</param>
<remarks>
<para>
Invokes <see cref="M:log4net.Util.OnlyOnceErrorHandler.FirstError(Sy
stem.String,System.Exception,log4net.Core.ErrorCode)"/> if and only if this is t
he first error or the first error after <see cref="M:log4net.Util.OnlyOnceErrorH
andler.Reset"/> has been called.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OnlyOnceErrorHandler.Error(System.String)">
<summary>
Log an error
</summary>
<param name="message">The error message.</param>
<remarks>
<para>
Invokes <see cref="M:log4net.Util.OnlyOnceErrorHandler.FirstError(Sy
stem.String,System.Exception,log4net.Core.ErrorCode)"/> if and only if this is t
he first error or the first error after <see cref="M:log4net.Util.OnlyOnceErrorH
andler.Reset"/> has been called.
</para>
</remarks>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_enabledDate">
<summary>
The date the error was recorded.
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_firstTime">
<summary>
Flag to indicate if it is the first error
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_message">
<summary>
The message recorded during the first error.
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_exception">
<summary>
The exception recorded during the first error.
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_errorCode">
<summary>
The error code recorded during the first error.
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.m_prefix">
<summary>
String to prefix each message with
</summary>
</member>
<member name="F:log4net.Util.OnlyOnceErrorHandler.declaringType">
<summary>
The fully qualified type of the OnlyOnceErrorHandler class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Util.OnlyOnceErrorHandler.IsEnabled">
<summary>
Is error logging enabled
</summary>
<remarks>
<para>
Is error logging enabled. Logging is only enabled for the
first error delivered to the <see cref="T:log4net.Util.OnlyOnceError
Handler"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.OnlyOnceErrorHandler.EnabledDate">
<summary>
The date the first error that trigged this error handler occured.
</summary>
</member>
<member name="P:log4net.Util.OnlyOnceErrorHandler.ErrorMessage">
<summary>
The message from the first error that trigged this error handler.
</summary>
</member>
<member name="P:log4net.Util.OnlyOnceErrorHandler.Exception">
<summary>
The exception from the first error that trigged this error handler.
</summary>
<remarks>
May be <see langword="null" />.
</remarks>
</member>
<member name="P:log4net.Util.OnlyOnceErrorHandler.ErrorCode">
<summary>
The error code from the first error that trigged this error handler.
</summary>
<remarks>
Defaults to <see cref="F:log4net.Core.ErrorCode.GenericFailure"/>
</remarks>
</member>
<member name="T:log4net.Util.OptionConverter">
<summary>
A convenience class to convert property values to specific types.
</summary>
<remarks>
<para>
Utility functions for converting types and parsing values.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.OptionConverter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.OptionCo
nverter"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to prevent instantiation of this clas
s.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.ToBoolean(System.String,Sys
tem.Boolean)">
<summary>
Converts a string to a <see cref="T:System.Boolean"/> value.
</summary>
<param name="argValue">String to convert.</param>
<param name="defaultValue">The default value.</param>
<returns>The <see cref="T:System.Boolean"/> value of <paramref name=
"argValue"/>.</returns>
<remarks>
<para>
If <paramref name="argValue"/> is "true", then <c>true</c> is return
ed.
If <paramref name="argValue"/> is "false", then <c>false</c> is retu
rned.
Otherwise, <paramref name="defaultValue"/> is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.ToFileSize(System.String,Sy
stem.Int64)">
<summary>
Parses a file size into a number.
</summary>
<param name="argValue">String to parse.</param>
<param name="defaultValue">The default value.</param>
<returns>The <see cref="T:System.Int64"/> value of <paramref name="a
rgValue"/>.</returns>
<remarks>
<para>
Parses a file size of the form: number[KB|MB|GB] into a
long value. It is scaled with the appropriate multiplier.
</para>
<para>
<paramref name="defaultValue"/> is returned when <paramref name="arg
Value"/>
cannot be converted to a <see cref="T:System.Int64"/> value.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.ConvertStringTo(System.Type
,System.String)">
<summary>
Converts a string to an object.
</summary>
<param name="target">The target type to convert to.</param>
<param name="txt">The string to convert to an object.</param>
<returns>
The object converted from a string or <c>null</c> when the
conversion failed.
</returns>
<remarks>
<para>
Converts a string to an object. Uses the converter registry to try
to convert the string value into the specified target type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.CanConvertTypeTo(System.Typ
e,System.Type)">
<summary>
Checks if there is an appropriate type conversion from the source ty
pe to the target type.
</summary>
<param name="sourceType">The type to convert from.</param>
<param name="targetType">The type to convert to.</param>
<returns><c>true</c> if there is a conversion from the source type t
o the target type.</returns>
<remarks>
Checks if there is an appropriate type conversion from the source ty
pe to the target type.
<para>
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.ConvertTypeTo(System.Object
,System.Type)">
<summary>
Converts an object to the target type.
</summary>
<param name="sourceInstance">The object to convert to the target typ
e.</param>
<param name="targetType">The type to convert to.</param>
<returns>The converted object.</returns>
<remarks>
<para>
Converts an object to the target type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.InstantiateByClassName(Syst
em.String,System.Type,System.Object)">
<summary>
Instantiates an object given a class name.
</summary>
<param name="className">The fully qualified class name of the object
to instantiate.</param>
<param name="superClass">The class to which the new object should be
long.</param>
<param name="defaultValue">The object to return in case of non-fulfi
llment.</param>
<returns>
An instance of the <paramref name="className"/> or <paramref name="d
efaultValue"/>
if the object could not be instantiated.
</returns>
<remarks>
<para>
Checks that the <paramref name="className"/> is a subclass of
<paramref name="superClass"/>. If that test fails or the object coul
d
not be instantiated, then <paramref name="defaultValue"/> is returne
d.
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.SubstituteVariables(System.
String,System.Collections.IDictionary)">
<summary>
Performs variable substitution in string <paramref name="value"/> fr
om the
values of keys found in <paramref name="props"/>.
</summary>
<param name="value">The string on which variable substitution is per
formed.</param>
<param name="props">The dictionary to use to lookup variables.</para
m>
<returns>The result of the substitutions.</returns>
<remarks>
<para>
The variable substitution delimiters are <b>${</b> and <b>}</b>.
</para>
<para>
For example, if props contains <c>key=value</c>, then the call
</para>
<para>
<code lang="C#">
string s = OptionConverter.SubstituteVariables("Value of key is ${ke
y}.");
</code>
</para>
<para>
will set the variable <c>s</c> to "Value of key is value.".
</para>
<para>
If no value could be found for the specified key, then substitution
defaults to an empty string.
</para>
<para>
For example, if system properties contains no value for the key
"nonExistentKey", then the call
</para>
<para>
<code lang="C#">
string s = OptionConverter.SubstituteVariables("Value of nonExistent
Key is [${nonExistentKey}]");
</code>
</para>
<para>
will set <s>s</s> to "Value of nonExistentKey is []".
</para>
<para>
An Exception is thrown if <paramref name="value"/> contains a start
delimiter "${" which is not balanced by a stop delimiter "}".
</para>
</remarks>
</member>
<member name="M:log4net.Util.OptionConverter.ParseEnum(System.Type,Syste
m.String,System.Boolean)">
<summary>
Converts the string representation of the name or numeric value of o
ne or
more enumerated constants to an equivalent enumerated object.
</summary>
<param name="enumType">The type to convert to.</param>
<param name="value">The enum string value.</param>
<param name="ignoreCase">If <c>true</c>, ignore case; otherwise, reg
ard case.</param>
<returns>An object of type <paramref name="enumType" /> whose value
is represented by <paramref name="value" />.</returns>
</member>
<member name="F:log4net.Util.OptionConverter.declaringType">
<summary>
The fully qualified type of the OptionConverter class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.PatternParser">
<summary>
Most of the work of the <see cref="T:log4net.Layout.PatternLayout"/>
class
is delegated to the PatternParser class.
</summary>
<remarks>
<para>
The <c>PatternParser</c> processes a pattern string and
returns a chain of <see cref="T:log4net.Util.PatternConverter"/> obj
ects.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.PatternParser.#ctor(System.String)">
<summary>
Constructor
</summary>
<param name="pattern">The pattern to parse.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.PatternP
arser"/> class
with the specified pattern string.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternParser.Parse">
<summary>
Parses the pattern into a chain of pattern converters.
</summary>
<returns>The head of a chain of pattern converters.</returns>
<remarks>
<para>
Parses the pattern into a chain of pattern converters.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternParser.BuildCache">
<summary>
Build the unified cache of converters from the static and instance m
aps
</summary>
<returns>the list of all the converter names</returns>
<remarks>
<para>
Build the unified cache of converters from the static and instance m
aps
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternParser.ParseInternal(System.String,S
ystem.String[])">
<summary>
Internal method to parse the specified pattern to find specified mat
ches
</summary>
<param name="pattern">the pattern to parse</param>
<param name="matches">the converter names to match in the pattern</p
aram>
<remarks>
<para>
The matches param must be sorted such that longer strings come befor
e shorter ones.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternParser.ProcessLiteral(System.String)
">
<summary>
Process a parsed literal
</summary>
<param name="text">the literal text</param>
</member>
<member name="M:log4net.Util.PatternParser.ProcessConverter(System.Strin
g,System.String,log4net.Util.FormattingInfo)">
<summary>
Process a parsed converter pattern
</summary>
<param name="converterName">the name of the converter</param>
<param name="option">the optional option for the converter</param>
<param name="formattingInfo">the formatting info for the converter</
param>
</member>
<member name="M:log4net.Util.PatternParser.AddConverter(log4net.Util.Pat
ternConverter)">
<summary>
Resets the internal state of the parser and adds the specified patte
rn converter
to the chain.
</summary>
<param name="pc">The pattern converter to add.</param>
</member>
<member name="F:log4net.Util.PatternParser.m_head">
<summary>
The first pattern converter in the chain
</summary>
</member>
<member name="F:log4net.Util.PatternParser.m_tail">
<summary>
the last pattern converter in the chain
</summary>
</member>
<member name="F:log4net.Util.PatternParser.m_pattern">
<summary>
The pattern
</summary>
</member>
<member name="F:log4net.Util.PatternParser.m_patternConverters">
<summary>
Internal map of converter identifiers to converter types
</summary>
<remarks>
<para>
This map overrides the static s_globalRulesRegistry map.
</para>
</remarks>
</member>
<member name="F:log4net.Util.PatternParser.declaringType">
<summary>
The fully qualified type of the PatternParser class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Util.PatternParser.PatternConverters">
<summary>
Get the converter registry used by this parser
</summary>
<value>
The converter registry used by this parser
</value>
<remarks>
<para>
Get the converter registry used by this parser
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternParser.StringLengthComparer">
<summary>
Sort strings by length
</summary>
<remarks>
<para>
<see cref="T:System.Collections.IComparer"/> that orders strings by
string length.
The longest strings are placed first
</para>
</remarks>
</member>
<member name="T:log4net.Util.PatternString">
<summary>
This class implements a patterned string.
</summary>
<remarks>
<para>
This string has embedded patterns that are resolved and expanded
when the string is formatted.
</para>
<para>
This class functions similarly to the <see cref="T:log4net.Layout.Pa
tternLayout"/>
in that it accepts a pattern and renders it to a string. Unlike the
<see cref="T:log4net.Layout.PatternLayout"/> however the <c>PatternS
tring</c>
does not render the properties of a specific <see cref="T:log4net.Co
re.LoggingEvent"/> but
of the process in general.
</para>
<para>
The recognized conversion pattern names are:
</para>
<list type="table">
<listheader>
<term>Conversion Pattern Name</term>
<description>Effect</description>
</listheader>
<item>
<term>appdomain</term>
<description>
<para>
Used to output the friendly name of the current AppDomai
n.
</para>
</description>
</item>
<item>
<term>date</term>
<description>
<para>
Used to output the current date and time in the
local time zone.
To output the date in universal time use the <c>
%utcdate</c> pattern.
The date conversion
specifier may be followed by a <i>date format sp
ecifier</i> enclosed
between braces. For example, <b>%date{HH:mm:ss,f
ff}</b> or
<b>%date{dd MMM yyyy HH:mm:ss,fff}</b>. If no d
ate format specifier is
given then ISO8601 format is
assumed (<see cref="T:log4net.DateFormatter.Iso8
601DateFormatter"/>).
</para>
<para>
The date format specifier admits the same syntax
as the
time pattern string of the <see cref="M:DateTime
.ToString(string)"/>.
</para>
<para>
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
<see cref="T:log4net.DateFormatter.AbsoluteTimeD
ateFormatter"/>,
<see cref="T:log4net.DateFormatter.DateTimeDateF
ormatter"/> and respectively
<see cref="T:log4net.DateFormatter.Iso8601DateFo
rmatter"/>. For example,
<b>%date{ISO8601}</b> or <b>%date{ABSOLUTE}</b>.
</para>
<para>
These dedicated date formatters perform signific
antly
better than <see cref="M:DateTime.ToString(strin
g)"/>.
</para>
</description>
</item>
<item>
<term>env</term>
<description>
<para>
Used to output the a specific environment variab
le. The key to
lookup must be specified within braces and direc
tly following the
pattern specifier, e.g. <b>%env{COMPUTERNAME}</b
> would include the value
of the <c>COMPUTERNAME</c> environment variable.
</para>
<para>
The <c>env</c> pattern is not supported on the .NET Comp
act Framework.
</para>
</description>
</item>
<item>
<term>identity</term>
<description>
<para>
Used to output the user name for the currently a
ctive user
(Principal.Identity.Name).
</para>
</description>
</item>
<item>
<term>newline</term>
<description>
<para>
Outputs the platform dependent line separator ch
aracter or
characters.
</para>
<para>
This conversion pattern name offers the same per
formance as using
non-portable line separator strings such as
"\n", or "\r\n".
Thus, it is the preferred way of specifying a li
ne separator.
</para>
</description>
</item>
<item>
<term>processid</term>
<description>
<para>
Used to output the system process ID for the cur
rent process.
</para>
</description>
</item>
<item>
<term>property</term>
<description>
<para>
Used to output a specific context property. The
key to
lookup must be specified within braces and direc
tly following the
pattern specifier, e.g. <b>%property{user}</b> w
ould include the value
from the property that is keyed by the string 'u
ser'. Each property value
that is to be included in the log must be specif
ied separately.
Properties are stored in logging contexts. By de
fault
the <c>log4net:HostName</c> property is set to t
he name of machine on
which the event was originally logged.
</para>
<para>
If no key is specified, e.g. <b>%property</b> th
en all the keys and their
values are printed in a comma separated list.
</para>
<para>
The properties of an event are combined from a n
umber of different
contexts. These are listed below in the order in
which they are searched.
</para>
<list type="definition">
<item>
<term>the thread properties</ter
m>
<description>
The <see cref="P:log4net.ThreadC
ontext.Properties"/> that are set on the current
thread. These properties are sha
red by all events logged on this thread.
</description>
</item>
<item>
<term>the global properties</ter
m>
<description>
The <see cref="P:log4net.GlobalC
ontext.Properties"/> that are set globally. These
properties are shared by all the
threads in the AppDomain.
</description>
</item>
</list>
</description>
</item>
<item>
<term>random</term>
<description>
<para>
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.
</para>
</description>
</item>
<item>
<term>username</term>
<description>
<para>
Used to output the WindowsIdentity for the curre
ntly
active user.
</para>
</description>
</item>
<item>
<term>utcdate</term>
<description>
<para>
Used to output the date of the logging event in
universal time.
The date conversion
specifier may be followed by a <i>date format sp
ecifier</i> enclosed
between braces. For example, <b>%utcdate{HH:mm:s
s,fff}</b> or
<b>%utcdate{dd MMM yyyy HH:mm:ss,fff}</b>. If n
o date format specifier is
given then ISO8601 format is
assumed (<see cref="T:log4net.DateFormatter.Iso8
601DateFormatter"/>).
</para>
<para>
The date format specifier admits the same syntax
as the
time pattern string of the <see cref="M:DateTime
.ToString(string)"/>.
</para>
<para>
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
<see cref="T:log4net.DateFormatter.AbsoluteTimeD
ateFormatter"/>,
<see cref="T:log4net.DateFormatter.DateTimeDateF
ormatter"/> and respectively
<see cref="T:log4net.DateFormatter.Iso8601DateFo
rmatter"/>. For example,
<b>%utcdate{ISO8601}</b> or <b>%utcdate{ABSOLUTE
}</b>.
</para>
<para>
These dedicated date formatters perform signific
antly
better than <see cref="M:DateTime.ToString(strin
g)"/>.
</para>
</description>
</item>
<item>
<term>%</term>
<description>
<para>
The sequence %% outputs a single percent sign.
</para>
</description>
</item>
</list>
<para>
Additional pattern converters may be registered with a specific <see
cref="T:log4net.Util.PatternString"/>
instance using <see cref="M:AddConverter(ConverterInfo)"/> or
<see cref="M:AddConverter(string, Type)"/>.
</para>
<para>
See the <see cref="T:log4net.Layout.PatternLayout"/> for details on
the
<i>format modifiers</i> supported by the patterns.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.PatternString.s_globalRulesRegistry">
<summary>
Internal map of converter identifiers to converter types.
</summary>
</member>
<member name="F:log4net.Util.PatternString.m_pattern">
<summary>
the pattern
</summary>
</member>
<member name="F:log4net.Util.PatternString.m_head">
<summary>
the head of the pattern converter chain
</summary>
</member>
<member name="F:log4net.Util.PatternString.m_instanceRulesRegistry">
<summary>
patterns defined on this PatternString only
</summary>
</member>
<member name="M:log4net.Util.PatternString.#cctor">
<summary>
Initialize the global registry
</summary>
</member>
<member name="M:log4net.Util.PatternString.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Initialize a new instance of <see cref="T:log4net.Util.PatternString
"/>
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.#ctor(System.String)">
<summary>
Constructs a PatternString
</summary>
<param name="pattern">The pattern to use with this PatternString</pa
ram>
<remarks>
<para>
Initialize a new instance of <see cref="T:log4net.Util.PatternString
"/> with the pattern specified.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.ActivateOptions">
<summary>
Initialize object options
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Util.PatternString.Activ
ateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Util.PatternString.ActivateOpti
ons"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Util.PatternString.ActivateOptions"/> must be c
alled again.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.CreatePatternParser(System.St
ring)">
<summary>
Create the <see cref="T:log4net.Util.PatternParser"/> used to parse
the pattern
</summary>
<param name="pattern">the pattern to parse</param>
<returns>The <see cref="T:log4net.Util.PatternParser"/></returns>
<remarks>
<para>
Returns PatternParser used to parse the conversion string. Subclasse
s
may override this to return a subclass of PatternParser which recogn
ize
custom conversion pattern name.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.Format(System.IO.TextWriter)"
>
<summary>
Produces a formatted string as specified by the conversion pattern.
</summary>
<param name="writer">The TextWriter to write the formatted event to<
/param>
<remarks>
<para>
Format the pattern to the <paramref name="writer"/>.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.Format">
<summary>
Format the pattern as a string
</summary>
<returns>the pattern formatted as a string</returns>
<remarks>
<para>
Format the pattern to a string.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.AddConverter(log4net.Util.Con
verterInfo)">
<summary>
Add a converter to this PatternString
</summary>
<param name="converterInfo">the converter info</param>
<remarks>
<para>
This version of the method is used by the configurator.
Programmatic users should use the alternative <see cref="M:AddConver
ter(string,Type)"/> method.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PatternString.AddConverter(System.String,Sy
stem.Type)">
<summary>
Add a converter to this PatternString
</summary>
<param name="name">the name of the conversion pattern for this conve
rter</param>
<param name="type">the type of the converter</param>
<remarks>
<para>
Add a converter to this PatternString
</para>
</remarks>
</member>
<member name="P:log4net.Util.PatternString.ConversionPattern">
<summary>
Gets or sets the pattern formatting string
</summary>
<value>
The pattern formatting string
</value>
<remarks>
<para>
The <b>ConversionPattern</b> option. This is the string which
controls formatting and consists of a mix of literal content and
conversion specifiers.
</para>
</remarks>
</member>
<member name="T:log4net.Util.PropertiesDictionary">
<summary>
String keyed object map.
</summary>
<remarks>
<para>
While this collection is serializable only member
objects that are serializable will
be serialized along with this collection.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="T:log4net.Util.ReadOnlyPropertiesDictionary">
<summary>
String keyed object map that is read only.
</summary>
<remarks>
<para>
This collection is readonly and cannot be modified.
</para>
<para>
While this collection is serializable only member
objects that are serializable will
be serialized along with this collection.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="F:log4net.Util.ReadOnlyPropertiesDictionary.m_hashtable">
<summary>
The Hashtable used to store the properties data
</summary>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ReadOnly
PropertiesDictionary"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(log4net.
Util.ReadOnlyPropertiesDictionary)">
<summary>
Copy Constructor
</summary>
<param name="propertiesDictionary">properties to copy</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ReadOnly
PropertiesDictionary"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.#ctor(System.R
untime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingCon
text)">
<summary>
Deserialization constructor
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> that holds the serialized object data.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.
StreamingContext"/> that contains contextual information about the source or des
tination.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ReadOnly
PropertiesDictionary"/> class
with serialized data.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetKeys">
<summary>
Gets the key names.
</summary>
<returns>An array of all the keys.</returns>
<remarks>
<para>
Gets the key names.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Contains(Syste
m.String)">
<summary>
Test if the dictionary contains a specified key
</summary>
<param name="key">the key to look for</param>
<returns>true if the dictionary contains the specified key</returns>
<remarks>
<para>
Test if the dictionary contains a specified key
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(
System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.Stre
amingContext)">
<summary>
Serializes this object into the <see cref="T:System.Runtime.Serializ
ation.SerializationInfo"/> provided.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> to populate with data.</param>
<param name="context">The destination for this serialization.</param
>
<remarks>
<para>
Serializes this object into the <see cref="T:System.Runtime.Serializ
ation.SerializationInfo"/> provided.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#GetEnumerator">
<summary>
See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
</summary>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Remove(System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Remove(System.Object
)"/>
</summary>
<param name="key"></param>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Contains(System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Contains(System.Obje
ct)"/>
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.Clear">
<summary>
Remove all properties from the properties collection
</summary>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Add(System.Object,System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Add(System.Object,Sy
stem.Object)"/>
</summary>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#ICollection#CopyTo(System.Array,System.Int32)">
<summary>
See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,
System.Int32)"/>
</summary>
<param name="array"></param>
<param name="index"></param>
</member>
<member name="M:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IEnumerable#GetEnumerator">
<summary>
See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Item(System.St
ring)">
<summary>
Gets or sets the value of the property with the specified key.
</summary>
<value>
The value of the property with the specified key.
</value>
<param name="key">The key of the property to get or set.</param>
<remarks>
<para>
The property value will only be serialized if it is serializable.
If it cannot be serialized it will be silently ignored if
a serialization operation is performed.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.InnerHashtable
">
<summary>
The hashtable used to store the properties
</summary>
<value>
The internal collection used to store the properties
</value>
<remarks>
<para>
The hashtable used to store the properties
</para>
</remarks>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#IsReadOnly">
<summary>
See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Item(System.Object)">
<summary>
See <see cref="P:System.Collections.IDictionary.Item(System.Object)"
/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Values">
<summary>
See <see cref="P:System.Collections.IDictionary.Values"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#Keys">
<summary>
See <see cref="P:System.Collections.IDictionary.Keys"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#IDictionary#IsFixedSize">
<summary>
See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#ICollection#IsSynchronized">
<summary>
See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.Count">
<summary>
The number of properties in this collection
</summary>
</member>
<member name="P:log4net.Util.ReadOnlyPropertiesDictionary.System#Collect
ions#ICollection#SyncRoot">
<summary>
See <see cref="P:System.Collections.ICollection.SyncRoot"/>
</summary>
</member>
<member name="M:log4net.Util.PropertiesDictionary.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Properti
esDictionary"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.#ctor(log4net.Util.Rea
dOnlyPropertiesDictionary)">
<summary>
Constructor
</summary>
<param name="propertiesDictionary">properties to copy</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.Properti
esDictionary"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.#ctor(System.Runtime.S
erialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.Properti
esDictionary"/> class
with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.Ser
ializationInfo"/> that holds the serialized object data.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.
StreamingContext"/> that contains contextual information about the source or des
tination.</param>
<remarks>
<para>
Because this class is sealed the serialization constructor is privat
e.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.Remove(System.String)"
>
<summary>
Remove the entry with the specified key from this dictionary
</summary>
<param name="key">the key for the entry to remove</param>
<remarks>
<para>
Remove the entry with the specified key from this dictionary
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#GetEnumerator">
<summary>
See <see cref="M:System.Collections.IDictionary.GetEnumerator"/>
</summary>
<returns>an enumerator</returns>
<remarks>
<para>
Returns a <see cref="T:System.Collections.IDictionaryEnumerator"/> o
ver the contest of this collection.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Remove(System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Remove(System.Object
)"/>
</summary>
<param name="key">the key to remove</param>
<remarks>
<para>
Remove the entry with the specified key from this dictionary
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Contains(System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Contains(System.Obje
ct)"/>
</summary>
<param name="key">the key to lookup in the collection</param>
<returns><c>true</c> if the collection contains the specified key</r
eturns>
<remarks>
<para>
Test if this collection contains a specified key.
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.Clear">
<summary>
Remove all properties from the properties collection
</summary>
<remarks>
<para>
Remove all properties from the properties collection
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Add(System.Object,System.Object)">
<summary>
See <see cref="M:System.Collections.IDictionary.Add(System.Object,Sy
stem.Object)"/>
</summary>
<param name="key">the key</param>
<param name="value">the value to store for the key</param>
<remarks>
<para>
Store a value for the specified <see cref="T:System.String"/> <param
ref name="key"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentException">Thrown if the <paramref
name="key"/> is not a string</exception>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#ICo
llection#CopyTo(System.Array,System.Int32)">
<summary>
See <see cref="M:System.Collections.ICollection.CopyTo(System.Array,
System.Int32)"/>
</summary>
<param name="array"></param>
<param name="index"></param>
</member>
<member name="M:log4net.Util.PropertiesDictionary.System#Collections#IEn
umerable#GetEnumerator">
<summary>
See <see cref="M:System.Collections.IEnumerable.GetEnumerator"/>
</summary>
</member>
<member name="P:log4net.Util.PropertiesDictionary.Item(System.String)">
<summary>
Gets or sets the value of the property with the specified key.
</summary>
<value>
The value of the property with the specified key.
</value>
<param name="key">The key of the property to get or set.</param>
<remarks>
<para>
The property value will only be serialized if it is serializable.
If it cannot be serialized it will be silently ignored if
a serialization operation is performed.
</para>
</remarks>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#IsReadOnly">
<summary>
See <see cref="P:System.Collections.IDictionary.IsReadOnly"/>
</summary>
<value>
<c>false</c>
</value>
<remarks>
<para>
This collection is modifiable. This property always
returns <c>false</c>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Item(System.Object)">
<summary>
See <see cref="P:System.Collections.IDictionary.Item(System.Object)"
/>
</summary>
<value>
The value for the key specified.
</value>
<remarks>
<para>
Get or set a value for the specified <see cref="T:System.String"/> <
paramref name="key"/>.
</para>
</remarks>
<exception cref="T:System.ArgumentException">Thrown if the <paramref
name="key"/> is not a string</exception>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Values">
<summary>
See <see cref="P:System.Collections.IDictionary.Values"/>
</summary>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#Keys">
<summary>
See <see cref="P:System.Collections.IDictionary.Keys"/>
</summary>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#IDi
ctionary#IsFixedSize">
<summary>
See <see cref="P:System.Collections.IDictionary.IsFixedSize"/>
</summary>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICo
llection#IsSynchronized">
<summary>
See <see cref="P:System.Collections.ICollection.IsSynchronized"/>
</summary>
</member>
<member name="P:log4net.Util.PropertiesDictionary.System#Collections#ICo
llection#SyncRoot">
<summary>
See <see cref="P:System.Collections.ICollection.SyncRoot"/>
</summary>
</member>
<member name="T:log4net.Util.PropertyEntry">
<summary>
A class to hold the key and data for a property set in the config fi
le
</summary>
<remarks>
<para>
A class to hold the key and data for a property set in the config fi
le
</para>
</remarks>
</member>
<member name="M:log4net.Util.PropertyEntry.ToString">
<summary>
Override <c>Object.ToString</c> to return sensible debug info
</summary>
<returns>string info about this object</returns>
</member>
<member name="P:log4net.Util.PropertyEntry.Key">
<summary>
Property Key
</summary>
<value>
Property Key
</value>
<remarks>
<para>
Property Key.
</para>
</remarks>
</member>
<member name="P:log4net.Util.PropertyEntry.Value">
<summary>
Property Value
</summary>
<value>
Property Value
</value>
<remarks>
<para>
Property Value.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ProtectCloseTextWriter">
<summary>
A <see cref="T:System.IO.TextWriter"/> that ignores the <see cref="M
:log4net.Util.ProtectCloseTextWriter.Close"/> message
</summary>
<remarks>
<para>
This writer is used in special cases where it is necessary
to protect a writer from being closed by a client.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.ProtectCloseTextWriter.#ctor(System.IO.Text
Writer)">
<summary>
Constructor
</summary>
<param name="writer">the writer to actually write to</param>
<remarks>
<para>
Create a new ProtectCloseTextWriter using a writer
</para>
</remarks>
</member>
<member name="M:log4net.Util.ProtectCloseTextWriter.Attach(System.IO.Tex
tWriter)">
<summary>
Attach this instance to a different underlying <see cref="T:System.I
O.TextWriter"/>
</summary>
<param name="writer">the writer to attach to</param>
<remarks>
<para>
Attach this instance to a different underlying <see cref="T:System.I
O.TextWriter"/>
</para>
</remarks>
</member>
<member name="M:log4net.Util.ProtectCloseTextWriter.Close">
<summary>
Does not close the underlying output writer.
</summary>
<remarks>
<para>
Does not close the underlying output writer.
This method does nothing.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ReaderWriterLock">
<summary>
Defines a lock that supports single writers and multiple readers
</summary>
<remarks>
<para>
<c>ReaderWriterLock</c> is used to synchronize access to a resource.

At any given time, it allows either concurrent read access for
multiple threads, or write access for a single thread. In a
situation where a resource is changed infrequently, a
<c>ReaderWriterLock</c> provides better throughput than a simple
one-at-a-time lock, such as <see cref="T:System.Threading.Monitor"/>
.
</para>
<para>
If a platform does not support a <c>System.Threading.ReaderWriterLoc
k</c>
implementation then all readers and writers are serialized. Therefor
e
the caller must not rely on multiple simultaneous readers.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.ReaderWriterLock.#ctor">
<summary>
Constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ReaderWr
iterLock"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReaderWriterLock.AcquireReaderLock">
<summary>
Acquires a reader lock
</summary>
<remarks>
<para>
<see cref="M:log4net.Util.ReaderWriterLock.AcquireReaderLock"/> bloc
ks if a different thread has the writer
lock, or if at least one thread is waiting for the writer lock.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock">
<summary>
Decrements the lock count
</summary>
<remarks>
<para>
<see cref="M:log4net.Util.ReaderWriterLock.ReleaseReaderLock"/> decr
ements the lock count. When the count
reaches zero, the lock is released.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReaderWriterLock.AcquireWriterLock">
<summary>
Acquires the writer lock
</summary>
<remarks>
<para>
This method blocks if another thread has a reader lock or writer loc
k.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReaderWriterLock.ReleaseWriterLock">
<summary>
Decrements the lock count on the writer lock
</summary>
<remarks>
<para>
ReleaseWriterLock decrements the writer lock count.
When the count reaches zero, the writer lock is released.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ReusableStringWriter">
<summary>
A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:lo
g4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused
</summary>
<remarks>
<para>
A <see cref="T:System.IO.StringWriter"/> that can be <see cref="M:lo
g4net.Util.ReusableStringWriter.Reset(System.Int32,System.Int32)"/> and reused.
This uses a single buffer for string operations.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.ReusableStringWriter.#ctor(System.IFormatPr
ovider)">
<summary>
Create an instance of <see cref="T:log4net.Util.ReusableStringWriter
"/>
</summary>
<param name="formatProvider">the format provider to use</param>
<remarks>
<para>
Create an instance of <see cref="T:log4net.Util.ReusableStringWriter
"/>
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReusableStringWriter.Dispose(System.Boolean
)">
<summary>
Override Dispose to prevent closing of writer
</summary>
<param name="disposing">flag</param>
<remarks>
<para>
Override Dispose to prevent closing of writer
</para>
</remarks>
</member>
<member name="M:log4net.Util.ReusableStringWriter.Reset(System.Int32,Sys
tem.Int32)">
<summary>
Reset this string writer so that it can be reused.
</summary>
<param name="maxCapacity">the maximum buffer capacity before it is t
rimmed</param>
<param name="defaultSize">the default size to make the buffer</param
>
<remarks>
<para>
Reset this string writer so that it can be reused.
The internal buffers are cleared and reset.
</para>
</remarks>
</member>
<member name="T:log4net.Util.SystemInfo">
<summary>
Utility class for system specific information.
</summary>
<remarks>
<para>
Utility class of static methods for system specific information.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
<author>Alexey Solofnenko</author>
</member>
<member name="M:log4net.Util.SystemInfo.#ctor">
<summary>
Private constructor to prevent instances.
</summary>
<remarks>
<para>
Only static methods are exposed from this type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.#cctor">
<summary>
Initialize default values for private static fields.
</summary>
<remarks>
<para>
Only static methods are exposed from this type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.AssemblyLocationInfo(System.Refl
ection.Assembly)">
<summary>
Gets the assembly location path for the specified assembly.
</summary>
<param name="myAssembly">The assembly to get the location for.</para
m>
<returns>The location of the assembly.</returns>
<remarks>
<para>
This method does not guarantee to return the correct path
to the assembly. If only tries to give an indication as to
where the assembly was loaded from.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.AssemblyQualifiedName(System.Typ
e)">
<summary>
Gets the fully qualified name of the <see cref="T:System.Type"/>, in
cluding
the name of the assembly from which the <see cref="T:System.Type"/>
was
loaded.
</summary>
<param name="type">The <see cref="T:System.Type"/> to get the fully
qualified name for.</param>
<returns>The fully qualified name for the <see cref="T:System.Type"/
>.</returns>
<remarks>
<para>
This is equivalent to the <c>Type.AssemblyQualifiedName</c> property
,
but this method works on the .NET Compact Framework 1.0 as well as
the full .NET runtime.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.AssemblyShortName(System.Reflect
ion.Assembly)">
<summary>
Gets the short name of the <see cref="T:System.Reflection.Assembly"/
>.
</summary>
<param name="myAssembly">The <see cref="T:System.Reflection.Assembly
"/> to get the name for.</param>
<returns>The short name of the <see cref="T:System.Reflection.Assemb
ly"/>.</returns>
<remarks>
<para>
The short name of the assembly is the <see cref="P:System.Reflection
.Assembly.FullName"/>
without the version, culture, or public key. i.e. it is just the
assembly's file name without the extension.
</para>
<para>
Use this rather than <c>Assembly.GetName().Name</c> because that
is not available on the Compact Framework.
</para>
<para>
Because of a FileIOPermission security demand we cannot do
the obvious Assembly.GetName().Name. We are allowed to get
the <see cref="P:System.Reflection.Assembly.FullName"/> of the assem
bly so we
start from there and strip out just the assembly name.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.AssemblyFileName(System.Reflecti
on.Assembly)">
<summary>
Gets the file name portion of the <see cref="T:System.Reflection.Ass
embly"/>, including the extension.
</summary>
<param name="myAssembly">The <see cref="T:System.Reflection.Assembly
"/> to get the file name for.</param>
<returns>The file name of the assembly.</returns>
<remarks>
<para>
Gets the file name portion of the <see cref="T:System.Reflection.Ass
embly"/>, including the extension.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Type,Sy
stem.String,System.Boolean,System.Boolean)">
<summary>
Loads the type specified in the type string.
</summary>
<param name="relativeType">A sibling type to use to load the type.</
param>
<param name="typeName">The name of the type to load.</param>
<param name="throwOnError">Flag set to <c>true</c> to throw an excep
tion if the type cannot be loaded.</param>
<param name="ignoreCase"><c>true</c> to ignore the case of the type
name; otherwise, <c>false</c></param>
<returns>The type loaded or <c>null</c> if it could not be loaded.</
returns>
<remarks>
<para>
If the type name is fully qualified, i.e. if contains an assembly na
me in
the type name, the type will be loaded from the system using
<see cref="M:Type.GetType(string,bool)"/>.
</para>
<para>
If the type name is not fully qualified, it will be loaded from the
assembly
containing the specified relative type. If the type is not found in
the assembly
then all the loaded assemblies will be searched for the type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.String,
System.Boolean,System.Boolean)">
<summary>
Loads the type specified in the type string.
</summary>
<param name="typeName">The name of the type to load.</param>
<param name="throwOnError">Flag set to <c>true</c> to throw an excep
tion if the type cannot be loaded.</param>
<param name="ignoreCase"><c>true</c> to ignore the case of the type
name; otherwise, <c>false</c></param>
<returns>The type loaded or <c>null</c> if it could not be loaded.</
returns>
<remarks>
<para>
If the type name is fully qualified, i.e. if contains an assembly na
me in
the type name, the type will be loaded from the system using
<see cref="M:Type.GetType(string,bool)"/>.
</para>
<para>
If the type name is not fully qualified it will be loaded from the
assembly that is directly calling this method. If the type is not fo
und
in the assembly then all the loaded assemblies will be searched for
the type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.GetTypeFromString(System.Reflect
ion.Assembly,System.String,System.Boolean,System.Boolean)">
<summary>
Loads the type specified in the type string.
</summary>
<param name="relativeAssembly">An assembly to load the type from.</p
aram>
<param name="typeName">The name of the type to load.</param>
<param name="throwOnError">Flag set to <c>true</c> to throw an excep
tion if the type cannot be loaded.</param>
<param name="ignoreCase"><c>true</c> to ignore the case of the type
name; otherwise, <c>false</c></param>
<returns>The type loaded or <c>null</c> if it could not be loaded.</
returns>
<remarks>
<para>
If the type name is fully qualified, i.e. if contains an assembly na
me in
the type name, the type will be loaded from the system using
<see cref="M:Type.GetType(string,bool)"/>.
</para>
<para>
If the type name is not fully qualified it will be loaded from the s
pecified
assembly. If the type is not found in the assembly then all the load
ed assemblies
will be searched for the type.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.NewGuid">
<summary>
Generate a new guid
</summary>
<returns>A new Guid</returns>
<remarks>
<para>
Generate a new guid
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.CreateArgumentOutOfRangeExceptio
n(System.String,System.Object,System.String)">
<summary>
Create an <see cref="T:System.ArgumentOutOfRangeException"/>
</summary>
<param name="parameterName">The name of the parameter that caused th
e exception</param>
<param name="actualValue">The value of the argument that causes this
exception</param>
<param name="message">The message that describes the error</param>
<returns>the ArgumentOutOfRangeException object</returns>
<remarks>
<para>
Create a new instance of the <see cref="T:System.ArgumentOutOfRangeE
xception"/> class
with a specified error message, the parameter name, and the value
of the argument.
</para>
<para>
The Compact Framework does not support the 3 parameter constructor f
or the
<see cref="T:System.ArgumentOutOfRangeException"/> type. This method
provides an
implementation that works for all platforms.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.In
t32@)">
<summary>
Parse a string into an <see cref="T:System.Int32"/> value
</summary>
<param name="s">the string to parse</param>
<param name="val">out param where the parsed value is placed</param>
<returns><c>true</c> if the string was able to be parsed into an int
eger</returns>
<remarks>
<para>
Attempts to parse the string into an integer. If the string cannot
be parsed then this method returns <c>false</c>. The method does not
throw an exception.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.In
t64@)">
<summary>
Parse a string into an <see cref="T:System.Int64"/> value
</summary>
<param name="s">the string to parse</param>
<param name="val">out param where the parsed value is placed</param>
<returns><c>true</c> if the string was able to be parsed into an int
eger</returns>
<remarks>
<para>
Attempts to parse the string into an integer. If the string cannot
be parsed then this method returns <c>false</c>. The method does not
throw an exception.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.TryParse(System.String,System.In
t16@)">
<summary>
Parse a string into an <see cref="T:System.Int16"/> value
</summary>
<param name="s">the string to parse</param>
<param name="val">out param where the parsed value is placed</param>
<returns><c>true</c> if the string was able to be parsed into an int
eger</returns>
<remarks>
<para>
Attempts to parse the string into an integer. If the string cannot
be parsed then this method returns <c>false</c>. The method does not
throw an exception.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.GetAppSetting(System.String)">
<summary>
Lookup an application setting
</summary>
<param name="key">the application settings key to lookup</param>
<returns>the value for the key, or <c>null</c></returns>
<remarks>
<para>
Configuration APIs are not supported under the Compact Framework
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.ConvertToFullPath(System.String)
">
<summary>
Convert a path into a fully qualified local file path.
</summary>
<param name="path">The path to convert.</param>
<returns>The fully qualified path.</returns>
<remarks>
<para>
Converts the path specified to a fully
qualified path. If the path is relative it is
taken as relative from the application base
directory.
</para>
<para>
The path specified must be a local file path, a URI is not supported
.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemInfo.CreateCaseInsensitiveHashtable">
<summary>
Creates a new case-insensitive instance of the <see cref="T:System.C
ollections.Hashtable"/> class with the default initial capacity.
</summary>
<returns>A new case-insensitive instance of the <see cref="T:System.
Collections.Hashtable"/> class with the default initial capacity</returns>
<remarks>
<para>
The new Hashtable instance uses the default load factor, the CaseIns
ensitiveHashCodeProvider, and the CaseInsensitiveComparer.
</para>
</remarks>
</member>
<member name="F:log4net.Util.SystemInfo.EmptyTypes">
<summary>
Gets an empty array of types.
</summary>
<remarks>
<para>
The <c>Type.EmptyTypes</c> field is not available on
the .NET Compact Framework 1.0.
</para>
</remarks>
</member>
<member name="F:log4net.Util.SystemInfo.declaringType">
<summary>
The fully qualified type of the SystemInfo class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="F:log4net.Util.SystemInfo.s_hostName">
<summary>
Cache the host name for the current machine
</summary>
</member>
<member name="F:log4net.Util.SystemInfo.s_appFriendlyName">
<summary>
Cache the application friendly name
</summary>
</member>
<member name="F:log4net.Util.SystemInfo.s_nullText">
<summary>
Text to output when a <c>null</c> is encountered.
</summary>
</member>
<member name="F:log4net.Util.SystemInfo.s_notAvailableText">
<summary>
Text to output when an unsupported feature is requested.
</summary>
</member>
<member name="F:log4net.Util.SystemInfo.s_processStartTime">
<summary>
Start time for the current process.
</summary>
</member>
<member name="P:log4net.Util.SystemInfo.NewLine">
<summary>
Gets the system dependent line terminator.
</summary>
<value>
The system dependent line terminator.
</value>
<remarks>
<para>
Gets the system dependent line terminator.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.ApplicationBaseDirectory">
<summary>
Gets the base directory for this <see cref="T:System.AppDomain"/>.
</summary>
<value>The base directory path for the current <see cref="T:System.A
ppDomain"/>.</value>
<remarks>
<para>
Gets the base directory for this <see cref="T:System.AppDomain"/>.
</para>
<para>
The value returned may be either a local file path or a URI.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.ConfigurationFileLocation">
<summary>
Gets the path to the configuration file for the current <see cref="T
:System.AppDomain"/>.
</summary>
<value>The path to the configuration file for the current <see cref=
"T:System.AppDomain"/>.</value>
<remarks>
<para>
The .NET Compact Framework 1.0 does not have a concept of a configur
ation
file. For this runtime, we use the entry assembly location as the ro
ot for
the configuration file name.
</para>
<para>
The value returned may be either a local file path or a URI.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.EntryAssemblyLocation">
<summary>
Gets the path to the file that first executed in the current <see cr
ef="T:System.AppDomain"/>.
</summary>
<value>The path to the entry assembly.</value>
<remarks>
<para>
Gets the path to the file that first executed in the current <see cr
ef="T:System.AppDomain"/>.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.CurrentThreadId">
<summary>
Gets the ID of the current thread.
</summary>
<value>The ID of the current thread.</value>
<remarks>
<para>
On the .NET framework, the <c>AppDomain.GetCurrentThreadId</c> metho
d
is used to obtain the thread ID for the current thread. This is the
operating system ID for the thread.
</para>
<para>
On the .NET Compact Framework 1.0 it is not possible to get the
operating system thread ID for the current thread. The native method

<c>GetCurrentThreadId</c> is implemented inline in a header file
and cannot be called.
</para>
<para>
On the .NET Framework 2.0 the <c>Thread.ManagedThreadId</c> is used
as this
gives a stable id unrelated to the operating system thread ID which
may
change if the runtime is using fibers.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.HostName">
<summary>
Get the host name or machine name for the current machine
</summary>
<value>
The hostname or machine name
</value>
<remarks>
<para>
Get the host name or machine name for the current machine
</para>
<para>
The host name (<see cref="M:System.Net.Dns.GetHostName"/>) or
the machine name (<c>Environment.MachineName</c>) for
the current machine, or if neither of these are available
then <c>NOT AVAILABLE</c> is returned.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.ApplicationFriendlyName">
<summary>
Get this application's friendly name
</summary>
<value>
The friendly name of this application as a string
</value>
<remarks>
<para>
If available the name of the application is retrieved from
the <c>AppDomain</c> using <c>AppDomain.CurrentDomain.FriendlyName</
c>.
</para>
<para>
Otherwise the file name of the entry assembly is used.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.ProcessStartTime">
<summary>
Get the start time for the current process.
</summary>
<remarks>
<para>
This is the time at which the log4net library was loaded into the
AppDomain. Due to reports of a hang in the call to <c>System.Diagnos
tics.Process.StartTime</c>
this is not the start time for the current process.
</para>
<para>
The log4net library should be loaded by an application early during
its
startup, therefore this start time should be a good approximation fo
r
the actual start time.
</para>
<para>
Note that AppDomains may be loaded and unloaded within the
same process without the process terminating, however this start tim
e
will be set per AppDomain.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.NullText">
<summary>
Text to output when a <c>null</c> is encountered.
</summary>
<remarks>
<para>
Use this value to indicate a <c>null</c> has been encountered while
outputting a string representation of an item.
</para>
<para>
The default value is <c>(null)</c>. This value can be overridden by
specifying
a value for the <c>log4net.NullText</c> appSetting in the applicatio
n's
.config file.
</para>
</remarks>
</member>
<member name="P:log4net.Util.SystemInfo.NotAvailableText">
<summary>
Text to output when an unsupported feature is requested.
</summary>
<remarks>
<para>
Use this value when an unsupported feature is requested.
</para>
<para>
The default value is <c>NOT AVAILABLE</c>. This value can be overrid
den by specifying
a value for the <c>log4net.NotAvailableText</c> appSetting in the ap
plication's
.config file.
</para>
</remarks>
</member>
<member name="T:log4net.Util.SystemStringFormat">
<summary>
Utility class that represents a format string.
</summary>
<remarks>
<para>
Utility class that represents a format string.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.SystemStringFormat.#ctor(System.IFormatProv
ider,System.String,System.Object[])">
<summary>
Initialise the <see cref="T:log4net.Util.SystemStringFormat"/>
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information.</param>
<param name="format">A <see cref="T:System.String"/> containing zero
or more format items.</param>
<param name="args">An <see cref="T:System.Object"/> array containing
zero or more objects to format.</param>
</member>
<member name="M:log4net.Util.SystemStringFormat.ToString">
<summary>
Format the string and arguments
</summary>
<returns>the formatted string</returns>
</member>
<member name="M:log4net.Util.SystemStringFormat.StringFormat(System.IFor
matProvider,System.String,System.Object[])">
<summary>
Replaces the format item in a specified <see cref="T:System.String"/
> with the text equivalent
of the value of a corresponding <see cref="T:System.Object"/> instan
ce in a specified array.
A specified parameter supplies culture-specific formatting informati
on.
</summary>
<param name="provider">An <see cref="T:System.IFormatProvider"/> tha
t supplies culture-specific formatting information.</param>
<param name="format">A <see cref="T:System.String"/> containing zero
or more format items.</param>
<param name="args">An <see cref="T:System.Object"/> array containing
zero or more objects to format.</param>
<returns>
A copy of format in which the format items have been replaced by the
<see cref="T:System.String"/>
equivalent of the corresponding instances of <see cref="T:System.Obj
ect"/> in args.
</returns>
<remarks>
<para>
This method does not throw exceptions. If an exception thrown while
formatting the result the
exception and arguments are returned in the result string.
</para>
</remarks>
</member>
<member name="M:log4net.Util.SystemStringFormat.StringFormatError(System
.Exception,System.String,System.Object[])">
<summary>
Process an error during StringFormat
</summary>
</member>
<member name="M:log4net.Util.SystemStringFormat.RenderArray(System.Array
,System.Text.StringBuilder)">
<summary>
Dump the contents of an array into a string builder
</summary>
</member>
<member name="M:log4net.Util.SystemStringFormat.RenderObject(System.Obje
ct,System.Text.StringBuilder)">
<summary>
Dump an object to a string
</summary>
</member>
<member name="F:log4net.Util.SystemStringFormat.declaringType">
<summary>
The fully qualified type of the SystemStringFormat class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="T:log4net.Util.ThreadContextProperties">
<summary>
Implementation of Properties collection for the <see cref="T:log4net
.ThreadContext"/>
</summary>
<remarks>
<para>
Class implements a collection of properties that is specific to each
thread.
The class is not synchronized as each thread has its own <see cref="
T:log4net.Util.PropertiesDictionary"/>.
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.ThreadContextProperties._dictionary">
<summary>
Each thread will automatically have its instance.
</summary>
</member>
<member name="M:log4net.Util.ThreadContextProperties.#ctor">
<summary>
Internal constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ThreadCo
ntextProperties"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextProperties.Remove(System.Strin
g)">
<summary>
Remove a property
</summary>
<param name="key">the key for the entry to remove</param>
<remarks>
<para>
Remove a property
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextProperties.GetKeys">
<summary>
Get the keys stored in the properties.
</summary>
<para>
Gets the keys stored in the properties.
</para>
<returns>a set of the defined keys</returns>
</member>
<member name="M:log4net.Util.ThreadContextProperties.Clear">
<summary>
Clear all properties
</summary>
<remarks>
<para>
Clear all properties
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextProperties.GetProperties(Syste
m.Boolean)">
<summary>
Get the <c>PropertiesDictionary</c> for this thread.
</summary>
<param name="create">create the dictionary if it does not exist, oth
erwise return null if does not exist</param>
<returns>the properties for this thread</returns>
<remarks>
<para>
The collection returned is only to be used on the calling thread. If
the
caller needs to share the collection between different threads then
the
caller must clone the collection before doing so.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextProperties.Item(System.String)
">
<summary>
Gets or sets the value of a property
</summary>
<value>
The value for the property with the specified key
</value>
<remarks>
<para>
Gets or sets the value of a property
</para>
</remarks>
</member>
<member name="T:log4net.Util.ThreadContextStack">
<summary>
Implementation of Stack for the <see cref="T:log4net.ThreadContext"/
>
</summary>
<remarks>
<para>
Implementation of Stack for the <see cref="T:log4net.ThreadContext"/
>
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="F:log4net.Util.ThreadContextStack.m_stack">
<summary>
The stack store.
</summary>
</member>
<member name="M:log4net.Util.ThreadContextStack.#ctor">
<summary>
Internal constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ThreadCo
ntextStack"/> class.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.Clear">
<summary>
Clears all the contextual information held in this stack.
</summary>
<remarks>
<para>
Clears all the contextual information held in this stack.
Only call this if you think that this tread is being reused after
a previous call execution which may not have completed correctly.
You do not need to use this method if you always guarantee to call
the <see cref="M:System.IDisposable.Dispose"/> method of the <see cr
ef="T:System.IDisposable"/>
returned from <see cref="M:log4net.Util.ThreadContextStack.Push(Syst
em.String)"/> even in exceptional circumstances,
for example by using the <c>using(log4net.ThreadContext.Stacks["NDC"
].Push("Stack_Message"))</c>
syntax.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.Pop">
<summary>
Removes the top context from this stack.
</summary>
<returns>The message in the context that was removed from the top of
this stack.</returns>
<remarks>
<para>
Remove the top context from this stack, and return
it to the caller. If this stack is empty then an
empty string (not <see langword="null"/>) is returned.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.Push(System.String)">
<summary>
Pushes a new context message into this stack.
</summary>
<param name="message">The new context message.</param>
<returns>
An <see cref="T:System.IDisposable"/> that can be used to clean up t
he context stack.
</returns>
<remarks>
<para>
Pushes a new context onto this stack. An <see cref="T:System.IDispos
able"/>
is returned that can be used to clean up this stack. This
can be easily combined with the <c>using</c> keyword to scope the
context.
</para>
</remarks>
<example>Simple example of using the <c>Push</c> method with the <c>
using</c> keyword.
<code lang="C#">
using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message"))
{
log.Warn("This should have an ThreadContext Stack message");
}
</code>
</example>
</member>
<member name="M:log4net.Util.ThreadContextStack.GetFullMessage">
<summary>
Gets the current context information for this stack.
</summary>
<returns>The current context information.</returns>
</member>
<member name="M:log4net.Util.ThreadContextStack.ToString">
<summary>
Gets the current context information for this stack.
</summary>
<returns>Gets the current context information</returns>
<remarks>
<para>
Gets the current context information for this stack.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.log4net#Core#IFixingRequ
ired#GetFixedObject">
<summary>
Get a portable version of this object
</summary>
<returns>the portable instance of this object</returns>
<remarks>
<para>
Get a cross thread portable version of this object
</para>
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextStack.Count">
<summary>
The number of messages in the stack
</summary>
<value>
The current number of messages in the stack
</value>
<remarks>
<para>
The current number of messages in the stack. That is
the number of times <see cref="M:log4net.Util.ThreadContextStack.Pus
h(System.String)"/> has been called
minus the number of times <see cref="M:log4net.Util.ThreadContextSta
ck.Pop"/> has been called.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextStack.InternalStack">
<summary>
Gets and sets the internal stack used by this <see cref="T:log4net.U
til.ThreadContextStack"/>
</summary>
<value>The internal storage stack</value>
<remarks>
<para>
This property is provided only to support backward compatability
of the <see cref="T:log4net.NDC"/>. Tytpically the internal stack sh
ould not
be modified.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ThreadContextStack.StackFrame">
<summary>
Inner class used to represent a single context frame in the stack.
</summary>
<remarks>
<para>
Inner class used to represent a single context frame in the stack.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.StackFrame.#ctor(System.
String,log4net.Util.ThreadContextStack.StackFrame)">
<summary>
Constructor
</summary>
<param name="message">The message for this context.</param>
<param name="parent">The parent context in the chain.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ThreadCo
ntextStack.StackFrame"/> class
with the specified message and parent context.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextStack.StackFrame.Message">
<summary>
Get the message.
</summary>
<value>The message.</value>
<remarks>
<para>
Get the message.
</para>
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextStack.StackFrame.FullMessage">
<summary>
Gets the full text of the context down to the root level.
</summary>
<value>
The full text of the context down to the root level.
</value>
<remarks>
<para>
Gets the full text of the context down to the root level.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ThreadContextStack.AutoPopStackFrame">
<summary>
Struct returned from the <see cref="M:log4net.Util.ThreadContextStac
k.Push(System.String)"/> method.
</summary>
<remarks>
<para>
This struct implements the <see cref="T:System.IDisposable"/> and is
designed to be used
with the <see langword="using"/> pattern to remove the stack frame a
t the end of the scope.
</para>
</remarks>
</member>
<member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_fram
eStack">
<summary>
The ThreadContextStack internal stack
</summary>
</member>
<member name="F:log4net.Util.ThreadContextStack.AutoPopStackFrame.m_fram
eDepth">
<summary>
The depth to trim the stack to when this instance is disposed
</summary>
</member>
<member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.#ctor(
System.Collections.Stack,System.Int32)">
<summary>
Constructor
</summary>
<param name="frameStack">The internal stack used by the ThreadContex
tStack.</param>
<param name="frameDepth">The depth to return the stack to when this
object is disposed.</param>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ThreadCo
ntextStack.AutoPopStackFrame"/> class with
the specified stack and return depth.
</para>
</remarks>
</member>
<member name="M:log4net.Util.ThreadContextStack.AutoPopStackFrame.Dispos
e">
<summary>
Returns the stack to the correct depth.
</summary>
<remarks>
<para>
Returns the stack to the correct depth.
</para>
</remarks>
</member>
<member name="T:log4net.Util.ThreadContextStacks">
<summary>
Implementation of Stacks collection for the <see cref="T:log4net.Thr
eadContext"/>
</summary>
<remarks>
<para>
Implementation of Stacks collection for the <see cref="T:log4net.Thr
eadContext"/>
</para>
</remarks>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.Util.ThreadContextStacks.#ctor(log4net.Util.Cont
extPropertiesBase)">
<summary>
Internal constructor
</summary>
<remarks>
<para>
Initializes a new instance of the <see cref="T:log4net.Util.ThreadCo
ntextStacks"/> class.
</para>
</remarks>
</member>
<member name="F:log4net.Util.ThreadContextStacks.declaringType">
<summary>
The fully qualified type of the ThreadContextStacks class.
</summary>
<remarks>
Used by the internal logger to record the Type of the
log message.
</remarks>
</member>
<member name="P:log4net.Util.ThreadContextStacks.Item(System.String)">
<summary>
Gets the named thread context stack
</summary>
<value>
The named stack
</value>
<remarks>
<para>
Gets the named thread context stack
</para>
</remarks>
</member>
<member name="T:log4net.Util.Transform">
<summary>
Utility class for transforming strings.
</summary>
<remarks>
<para>
Utility class for transforming strings.
</para>
</remarks>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.Util.Transform.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.Util.Transfor
m"/> class.
</summary>
<remarks>
<para>
Uses a private access modifier to prevent instantiation of this clas
s.
</para>
</remarks>
</member>
<member name="M:log4net.Util.Transform.WriteEscapedXmlString(System.Xml.
XmlWriter,System.String,System.String)">
<summary>
Write a string to an <see cref="T:System.Xml.XmlWriter"/>
</summary>
<param name="writer">the writer to write to</param>
<param name="textData">the string to write</param>
<param name="invalidCharReplacement">The string to replace non XML c
ompliant chars with</param>
<remarks>
<para>
The test is escaped either using XML escape entities
or using CDATA sections.
</para>
</remarks>
</member>
<member name="M:log4net.Util.Transform.MaskXmlInvalidCharacters(System.S
tring,System.String)">
<summary>
Replace invalid XML characters in text string
</summary>
<param name="textData">the XML text input string</param>
<param name="mask">the string to use in place of invalid characters<
/param>
<returns>A string that does not contain invalid XML characters.</ret
urns>
<remarks>
<para>
Certain Unicode code points are not allowed in the XML InfoSet, for
details see: <a href="http://www.w3.org/TR/REC-xml/#charsets">http:/
/www.w3.org/TR/REC-xml/#charsets</a>.
</para>
<para>
This method replaces any illegal characters in the input string
with the mask string specified.
</para>
</remarks>
</member>
<member name="M:log4net.Util.Transform.CountSubstrings(System.String,Sys
tem.String)">
<summary>
Count the number of times that the substring occurs in the text
</summary>
<param name="text">the text to search</param>
<param name="substring">the substring to find</param>
<returns>the number of times the substring occurs in the text</retur
ns>
<remarks>
<para>
The substring is assumed to be non repeating within itself.
</para>
</remarks>
</member>
<member name="F:log4net.Util.Transform.INVALIDCHARS">
<summary>
Characters illegal in XML 1.0
</summary>
</member>
<member name="T:log4net.Util.WindowsSecurityContext">
<summary>
Impersonate a Windows Account
</summary>
<remarks>
<para>
This <see cref="T:log4net.Core.SecurityContext"/> impersonates a Win
dows account.
</para>
<para>
How the impersonation is done depends on the value of <see cref="M:l
og4net.Util.WindowsSecurityContext.Impersonate(System.Object)"/>.
This allows the context to either impersonate a set of user credenti
als specified
using username, domain name and password or to revert to the process
credentials.
</para>
</remarks>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.#ctor">
<summary>
Default constructor
</summary>
<remarks>
<para>
Default constructor
</para>
</remarks>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.ActivateOptions">
<summary>
Initialize the SecurityContext based on the options set.
</summary>
<remarks>
<para>
This is part of the <see cref="T:log4net.Core.IOptionHandler"/> dela
yed object
activation scheme. The <see cref="M:log4net.Util.WindowsSecurityCont
ext.ActivateOptions"/> method must
be called on this object after the configuration properties have
been set. Until <see cref="M:log4net.Util.WindowsSecurityContext.Act
ivateOptions"/> is called this
object is in an undefined state and must not be used.
</para>
<para>
If any of the configuration properties are modified then
<see cref="M:log4net.Util.WindowsSecurityContext.ActivateOptions"/>
must be called again.
</para>
<para>
The security context will try to Logon the specified user account an
d
capture a primary token for impersonation.
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">The required <see c
ref="P:log4net.Util.WindowsSecurityContext.UserName"/>,
<see cref="P:log4net.Util.WindowsSecurityContext.DomainName"/> or <s
ee cref="P:log4net.Util.WindowsSecurityContext.Password"/> properties were not s
pecified.</exception>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.Impersonate(System.O
bject)">
<summary>
Impersonate the Windows account specified by the <see cref="P:log4ne
t.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Util.WindowsS
ecurityContext.DomainName"/> properties.
</summary>
<param name="state">caller provided state</param>
<returns>
An <see cref="T:System.IDisposable"/> instance that will revoke the
impersonation of this SecurityContext
</returns>
<remarks>
<para>
Depending on the <see cref="P:log4net.Util.WindowsSecurityContext.Cr
edentials"/> property either
impersonate a user using credentials supplied or revert
to the process credentials.
</para>
</remarks>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.LogonUser(System.Str
ing,System.String,System.String)">
<summary>
Create a <see cref="T:System.Security.Principal.WindowsIdentity"/> g
iven the userName, domainName and password.
</summary>
<param name="userName">the user name</param>
<param name="domainName">the domain name</param>
<param name="password">the password</param>
<returns>the <see cref="T:System.Security.Principal.WindowsIdentity"
/> for the account specified</returns>
<remarks>
<para>
Uses the Windows API call LogonUser to get a principal token for the
account. This
token is used to initialize the WindowsIdentity.
</para>
</remarks>
</member>
<member name="P:log4net.Util.WindowsSecurityContext.Credentials">
<summary>
Gets or sets the impersonation mode for this security context
</summary>
<value>
The impersonation mode for this security context
</value>
<remarks>
<para>
Impersonate either a user with user credentials or
revert this thread to the credentials of the process.
The value is one of the <see cref="T:log4net.Util.WindowsSecurityCon
text.ImpersonationMode"/>
enum.
</para>
<para>
The default value is <see cref="F:log4net.Util.WindowsSecurityContex
t.ImpersonationMode.User"/>
</para>
<para>
When the mode is set to <see cref="F:log4net.Util.WindowsSecurityCon
text.ImpersonationMode.User"/>
the user's credentials are established using the
<see cref="P:log4net.Util.WindowsSecurityContext.UserName"/>, <see c
ref="P:log4net.Util.WindowsSecurityContext.DomainName"/> and <see cref="P:log4ne
t.Util.WindowsSecurityContext.Password"/>
values.
</para>
<para>
When the mode is set to <see cref="F:log4net.Util.WindowsSecurityCon
text.ImpersonationMode.Process"/>
no other properties need to be set. If the calling thread is
impersonating then it will be reverted back to the process credentia
ls.
</para>
</remarks>
</member>
<member name="P:log4net.Util.WindowsSecurityContext.UserName">
<summary>
Gets or sets the Windows username for this security context
</summary>
<value>
The Windows username for this security context
</value>
<remarks>
<para>
This property must be set if <see cref="P:log4net.Util.WindowsSecuri
tyContext.Credentials"/>
is set to <see cref="F:log4net.Util.WindowsSecurityContext.Impersona
tionMode.User"/> (the default setting).
</para>
</remarks>
</member>
<member name="P:log4net.Util.WindowsSecurityContext.DomainName">
<summary>
Gets or sets the Windows domain name for this security context
</summary>
<value>
The Windows domain name for this security context
</value>
<remarks>
<para>
The default value for <see cref="P:log4net.Util.WindowsSecurityConte
xt.DomainName"/> is the local machine name
taken from the <see cref="P:System.Environment.MachineName"/> proper
ty.
</para>
<para>
This property must be set if <see cref="P:log4net.Util.WindowsSecuri
tyContext.Credentials"/>
is set to <see cref="F:log4net.Util.WindowsSecurityContext.Impersona
tionMode.User"/> (the default setting).
</para>
</remarks>
</member>
<member name="P:log4net.Util.WindowsSecurityContext.Password">
<summary>
Sets the password for the Windows account specified by the <see cref
="P:log4net.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Uti
l.WindowsSecurityContext.DomainName"/> properties.
</summary>
<value>
The password for the Windows account specified by the <see cref="P:l
og4net.Util.WindowsSecurityContext.UserName"/> and <see cref="P:log4net.Util.Win
dowsSecurityContext.DomainName"/> properties.
</value>
<remarks>
<para>
This property must be set if <see cref="P:log4net.Util.WindowsSecuri
tyContext.Credentials"/>
is set to <see cref="F:log4net.Util.WindowsSecurityContext.Impersona
tionMode.User"/> (the default setting).
</para>
</remarks>
</member>
<member name="T:log4net.Util.WindowsSecurityContext.ImpersonationMode">
<summary>
The impersonation modes for the <see cref="T:log4net.Util.WindowsSec
urityContext"/>
</summary>
<remarks>
<para>
See the <see cref="P:log4net.Util.WindowsSecurityContext.Credentials
"/> property for
details.
</para>
</remarks>
</member>
<member name="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.Us
er">
<summary>
Impersonate a user using the credentials supplied
</summary>
</member>
<member name="F:log4net.Util.WindowsSecurityContext.ImpersonationMode.Pr
ocess">
<summary>
Revert this the thread to the credentials of the process
</summary>
</member>
<member name="T:log4net.Util.WindowsSecurityContext.DisposableImpersonat
ionContext">
<summary>
Adds <see cref="T:System.IDisposable"/> to <see cref="T:System.Secur
ity.Principal.WindowsImpersonationContext"/>
</summary>
<remarks>
<para>
Helper class to expose the <see cref="T:System.Security.Principal.Wi
ndowsImpersonationContext"/>
through the <see cref="T:System.IDisposable"/> interface.
</para>
</remarks>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.DisposableImpersonat
ionContext.#ctor(System.Security.Principal.WindowsImpersonationContext)">
<summary>
Constructor
</summary>
<param name="impersonationContext">the impersonation context being w
rapped</param>
<remarks>
<para>
Constructor
</para>
</remarks>
</member>
<member name="M:log4net.Util.WindowsSecurityContext.DisposableImpersonat
ionContext.Dispose">
<summary>
Revert the impersonation
</summary>
<remarks>
<para>
Revert the impersonation
</para>
</remarks>
</member>
<member name="T:log4net.GlobalContext">
<summary>
The log4net Global Context.
</summary>
<remarks>
<para>
The <c>GlobalContext</c> provides a location for global debugging
information to be stored.
</para>
<para>
The global context has a properties map and these properties can
be included in the output of log messages. The <see cref="T:log4net.
Layout.PatternLayout"/>
supports selecting and outputing these properties.
</para>
<para>
By default the <c>log4net:HostName</c> property is set to the name o
f
the current machine.
</para>
</remarks>
<example>
<code lang="C#">
GlobalContext.Properties["hostname"] = Environment.MachineName;
</code>
</example>
<threadsafety static="true" instance="true"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.GlobalContext.#ctor">
<summary>
Private Constructor.
</summary>
<remarks>
Uses a private access modifier to prevent instantiation of this clas
s.
</remarks>
</member>
<member name="F:log4net.GlobalContext.s_properties">
<summary>
The global context properties instance
</summary>
</member>
<member name="P:log4net.GlobalContext.Properties">
<summary>
The global properties map.
</summary>
<value>
The global properties map.
</value>
<remarks>
<para>
The global properties map.
</para>
</remarks>
</member>
<member name="T:log4net.AssemblyInfo">
<summary>
Provides information about the environment the assembly has
been built for.
</summary>
</member>
<member name="F:log4net.AssemblyInfo.Version">
<summary>Version of the assembly</summary>
</member>
<member name="F:log4net.AssemblyInfo.TargetFrameworkVersion">
<summary>Version of the framework targeted</summary>
</member>
<member name="F:log4net.AssemblyInfo.TargetFramework">
<summary>Type of framework targeted</summary>
</member>
<member name="F:log4net.AssemblyInfo.ClientProfile">
<summary>Does it target a client profile?</summary>
</member>
<member name="P:log4net.AssemblyInfo.Info">
<summary>
Identifies the version and target for this assembly.
</summary>
</member>
<member name="T:log4net.LogicalThreadContext">
<summary>
The log4net Logical Thread Context.
</summary>
<remarks>
<para>
The <c>LogicalThreadContext</c> provides a location for <see cref="T
:System.Runtime.Remoting.Messaging.CallContext"/> specific debugging
information to be stored.
The <c>LogicalThreadContext</c> properties override any <see cref="T
:log4net.ThreadContext"/> or <see cref="T:log4net.GlobalContext"/>
properties with the same name.
</para>
<para>
The Logical Thread Context has a properties map and a stack.
The properties and stack can
be included in the output of log messages. The <see cref="T:log4net.
Layout.PatternLayout"/>
supports selecting and outputting these properties.
</para>
<para>
The Logical Thread Context provides a diagnostic context for the cur
rent call context.
This is an instrument for distinguishing interleaved log
output from different sources. Log output is typically interleaved
when a server handles multiple clients near-simultaneously.
</para>
<para>
The Logical Thread Context is managed on a per <see cref="T:System.R
untime.Remoting.Messaging.CallContext"/> basis.
</para>
<para>
The <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> re
quires a link time
<see cref="T:System.Security.Permissions.SecurityPermission"/> for t
he
<see cref="F:System.Security.Permissions.SecurityPermissionFlag.Infr
astructure"/>.
If the calling code does not have this permission then this context
will be disabled.
It will not store any property values set on it.
</para>
</remarks>
<example>Example of using the thread context properties to store a u
sername.
<code lang="C#">
LogicalThreadContext.Properties["user"] = userName;
log.Info("This log message has a LogicalThreadContext Property calle
d 'user'");
</code>
</example>
<example>Example of how to push a message into the context stack
<code lang="C#">
using(LogicalThreadContext.Stacks["LDC"].Push("my context message"))
{
log.Info("This log message has a LogicalThreadContext Stack mess
age that includes 'my context message'");

} // at the end of the using block the message is automatically popp
ed
</code>
</example>
<threadsafety static="true" instance="true"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.LogicalThreadContext.#ctor">
<summary>
Private Constructor.
</summary>
<remarks>
<para>
Uses a private access modifier to prevent instantiation of this clas
s.
</para>
</remarks>
</member>
<member name="F:log4net.LogicalThreadContext.s_properties">
<summary>
The thread context properties instance
</summary>
</member>
<member name="F:log4net.LogicalThreadContext.s_stacks">
<summary>
The thread context stacks instance
</summary>
</member>
<member name="P:log4net.LogicalThreadContext.Properties">
<summary>
The thread properties map
</summary>
<value>
The thread properties map
</value>
<remarks>
<para>
The <c>LogicalThreadContext</c> properties override any <see cref="T
:log4net.ThreadContext"/>
or <see cref="T:log4net.GlobalContext"/> properties with the same na
me.
</para>
</remarks>
</member>
<member name="P:log4net.LogicalThreadContext.Stacks">
<summary>
The thread stacks
</summary>
<value>
stack map
</value>
<remarks>
<para>
The logical thread stacks.
</para>
</remarks>
</member>
<member name="T:log4net.LogManager">
<summary>
This class is used by client applications to request logger instance
s.
</summary>
<remarks>
<para>
This class has static methods that are used by a client to request
a logger instance. The <see cref="M:GetLogger(string)"/> method is
used to retrieve a logger.
</para>
<para>
See the <see cref="T:log4net.ILog"/> interface for more details.
</para>
</remarks>
<example>Simple example of logging messages
<code lang="C#">
ILog log = LogManager.GetLogger("application-log");

log.Info("Application Start");
log.Debug("This is a debug message");

if (log.IsDebugEnabled)
{
log.Debug("This is another debug message");
}
</code>
</example>
<threadsafety static="true" instance="true"/>
<seealso cref="T:log4net.ILog"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.LogManager.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.LogManager"/>
class.
</summary>
<remarks>
Uses a private access modifier to prevent instantiation of this clas
s.
</remarks>
</member>
<member name="M:log4net.LogManager.Exists(System.String)">
<overloads>Returns the named logger if it exists.</overloads>
<summary>
Returns the named logger if it exists.
</summary>
<remarks>
<para>
If the named logger exists (in the default repository) then it
returns a reference to the logger, otherwise it returns <c>null</c>.
</para>
</remarks>
<param name="name">The fully qualified logger name to look for.</par
am>
<returns>The logger found, or <c>null</c> if no logger could be foun
d.</returns>
</member>
<member name="M:log4net.LogManager.Exists(System.String,System.String)">
<summary>
Returns the named logger if it exists.
</summary>
<remarks>
<para>
If the named logger exists (in the specified repository) then it
returns a reference to the logger, otherwise it returns
<c>null</c>.
</para>
</remarks>
<param name="repository">The repository to lookup in.</param>
<param name="name">The fully qualified logger name to look for.</par
am>
<returns>
The logger found, or <c>null</c> if the logger doesn't exist in the
specified
repository.
</returns>
</member>
<member name="M:log4net.LogManager.Exists(System.Reflection.Assembly,Sys
tem.String)">
<summary>
Returns the named logger if it exists.
</summary>
<remarks>
<para>
If the named logger exists (in the repository for the specified asse
mbly) then it
returns a reference to the logger, otherwise it returns
<c>null</c>.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<param name="name">The fully qualified logger name to look for.</par
am>
<returns>
The logger, or <c>null</c> if the logger doesn't exist in the specif
ied
assembly's repository.
</returns>
</member>
<member name="M:log4net.LogManager.GetCurrentLoggers">
<overloads>Get the currently defined loggers.</overloads>
<summary>
Returns all the currently defined loggers in the default repository.
</summary>
<remarks>
<para>The root logger is <b>not</b> included in the returned array.<
/para>
</remarks>
<returns>All the defined loggers.</returns>
</member>
<member name="M:log4net.LogManager.GetCurrentLoggers(System.String)">
<summary>
Returns all the currently defined loggers in the specified repositor
y.
</summary>
<param name="repository">The repository to lookup in.</param>
<remarks>
The root logger is <b>not</b> included in the returned array.
</remarks>
<returns>All the defined loggers.</returns>
</member>
<member name="M:log4net.LogManager.GetCurrentLoggers(System.Reflection.A
ssembly)">
<summary>
Returns all the currently defined loggers in the specified assembly'
s repository.
</summary>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<remarks>
The root logger is <b>not</b> included in the returned array.
</remarks>
<returns>All the defined loggers.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.String)">
<overloads>Get or create a logger.</overloads>
<summary>
Retrieves or creates a named logger.
</summary>
<remarks>
<para>
Retrieves a logger named as the <paramref name="name"/>
parameter. If the named logger already exists, then the
existing instance will be returned. Otherwise, a new instance is
created.
</para>
<para>By default, loggers do not have a set level but inherit
it from the hierarchy. This is one of the central features of
log4net.
</para>
</remarks>
<param name="name">The name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.String,System.String
)">
<summary>
Retrieves or creates a named logger.
</summary>
<remarks>
<para>
Retrieve a logger named as the <paramref name="name"/>
parameter. If the named logger already exists, then the
existing instance will be returned. Otherwise, a new instance is
created.
</para>
<para>
By default, loggers do not have a set level but inherit
it from the hierarchy. This is one of the central features of
log4net.
</para>
</remarks>
<param name="repository">The repository to lookup in.</param>
<param name="name">The name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,
System.String)">
<summary>
Retrieves or creates a named logger.
</summary>
<remarks>
<para>
Retrieve a logger named as the <paramref name="name"/>
parameter. If the named logger already exists, then the
existing instance will be returned. Otherwise, a new instance is
created.
</para>
<para>
By default, loggers do not have a set level but inherit
it from the hierarchy. This is one of the central features of
log4net.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<param name="name">The name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.Type)">
<summary>
Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
</summary>
<remarks>
Get the logger for the fully qualified name of the type specified.
</remarks>
<param name="type">The full name of <paramref name="type"/> will be
used as the name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.String,System.Type)"
>
<summary>
Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
</summary>
<remarks>
Gets the logger for the fully qualified name of the type specified.
</remarks>
<param name="repository">The repository to lookup in.</param>
<param name="type">The full name of <paramref name="type"/> will be
used as the name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.GetLogger(System.Reflection.Assembly,
System.Type)">
<summary>
Shorthand for <see cref="M:LogManager.GetLogger(string)"/>.
</summary>
<remarks>
Gets the logger for the fully qualified name of the type specified.
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
<param name="type">The full name of <paramref name="type"/> will be
used as the name of the logger to retrieve.</param>
<returns>The logger with the name specified.</returns>
</member>
<member name="M:log4net.LogManager.Shutdown">
<summary>
Shuts down the log4net system.
</summary>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in all the
default repositories.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.LogManager.ShutdownRepository">
<overloads>Shutdown a logger repository.</overloads>
<summary>
Shuts down the default repository.
</summary>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in the
default repository.
</para>
<para>Some appenders need to be closed before the application exists
.
Otherwise, pending logging events might be lost.
</para>
<para>The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
</member>
<member name="M:log4net.LogManager.ShutdownRepository(System.String)">
<summary>
Shuts down the repository for the repository specified.
</summary>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in the
<paramref name="repository"/> specified.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
<param name="repository">The repository to shutdown.</param>
</member>
<member name="M:log4net.LogManager.ShutdownRepository(System.Reflection.
Assembly)">
<summary>
Shuts down the repository specified.
</summary>
<remarks>
<para>
Calling this method will <b>safely</b> close and remove all
appenders in all the loggers including root contained in the
repository. The repository is looked up using
the <paramref name="repositoryAssembly"/> specified.
</para>
<para>
Some appenders need to be closed before the application exists.
Otherwise, pending logging events might be lost.
</para>
<para>
The <c>shutdown</c> method is careful to close nested
appenders before closing regular appenders. This is allows
configurations where a regular appender is attached to a logger
and again to a nested appender.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
</member>
<member name="M:log4net.LogManager.ResetConfiguration">
<overloads>Reset the configuration of a repository</overloads>
<summary>
Resets all values contained in this repository instance to their def
aults.
</summary>
<remarks>
<para>
Resets all values contained in the repository instance to their
defaults. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set to its default "off" value.
</para>
</remarks>
</member>
<member name="M:log4net.LogManager.ResetConfiguration(System.String)">
<summary>
Resets all values contained in this repository instance to their def
aults.
</summary>
<remarks>
<para>
Reset all values contained in the repository instance to their
defaults. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set to its default "off" value.
</para>
</remarks>
<param name="repository">The repository to reset.</param>
</member>
<member name="M:log4net.LogManager.ResetConfiguration(System.Reflection.
Assembly)">
<summary>
Resets all values contained in this repository instance to their def
aults.
</summary>
<remarks>
<para>
Reset all values contained in the repository instance to their
defaults. This removes all appenders from all loggers, sets
the level of all non-root loggers to <c>null</c>,
sets their additivity flag to <c>true</c> and sets the level
of the root logger to <see cref="F:log4net.Core.Level.Debug"/>. More
over,
message disabling is set to its default "off" value.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository to reset.</param>
</member>
<member name="M:log4net.LogManager.GetLoggerRepository">
<overloads>Get the logger repository.</overloads>
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the callers assembly (<see cref="M:Assembly.GetCallingAssembly()"
/>).
</para>
</remarks>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> in
stance for the default repository.</returns>
</member>
<member name="M:log4net.LogManager.GetLoggerRepository(System.String)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repository"/> argument.
</para>
</remarks>
<param name="repository">The repository to lookup in.</param>
</member>
<member name="M:log4net.LogManager.GetLoggerRepository(System.Reflection
.Assembly)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repositoryAssembly"/> argument.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
</member>
<member name="M:log4net.LogManager.GetRepository">
<overloads>Get a logger repository.</overloads>
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the callers assembly (<see cref="M:Assembly.GetCallingAssembly()"
/>).
</para>
</remarks>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> in
stance for the default repository.</returns>
</member>
<member name="M:log4net.LogManager.GetRepository(System.String)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repository"/> argument.
</para>
</remarks>
<param name="repository">The repository to lookup in.</param>
</member>
<member name="M:log4net.LogManager.GetRepository(System.Reflection.Assem
bly)">
<summary>
Returns the default <see cref="T:log4net.Repository.ILoggerRepositor
y"/> instance.
</summary>
<returns>The default <see cref="T:log4net.Repository.ILoggerReposito
ry"/> instance.</returns>
<remarks>
<para>
Gets the <see cref="T:log4net.Repository.ILoggerRepository"/> for th
e repository specified
by the <paramref name="repositoryAssembly"/> argument.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to lookup the r
epository.</param>
</member>
<member name="M:log4net.LogManager.CreateDomain(System.Type)">
<overloads>Create a domain</overloads>
<summary>
Creates a repository with the specified repository type.
</summary>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository()"/> will r
eturn
the same repository instance.
</para>
</remarks>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
</member>
<member name="M:log4net.LogManager.CreateRepository(System.Type)">
<overloads>Create a logger repository.</overloads>
<summary>
Creates a repository with the specified repository type.
</summary>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository()"/> will r
eturn
the same repository instance.
</para>
</remarks>
</member>
<member name="M:log4net.LogManager.CreateDomain(System.String)">
<summary>
Creates a repository with the specified name.
</summary>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
Creates the default type of <see cref="T:log4net.Repository.ILoggerR
epository"/> which is a
<see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<param name="repository">The name of the repository, this must be un
ique amongst repositories.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.LogManager.CreateRepository(System.String)">
<summary>
Creates a repository with the specified name.
</summary>
<remarks>
<para>
Creates the default type of <see cref="T:log4net.Repository.ILoggerR
epository"/> which is a
<see cref="T:log4net.Repository.Hierarchy.Hierarchy"/> object.
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<param name="repository">The name of the repository, this must be un
ique amongst repositories.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.LogManager.CreateDomain(System.String,System.Typ
e)">
<summary>
Creates a repository with the specified name and repository type.
</summary>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<param name="repository">The name of the repository, this must be un
ique to the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.LogManager.CreateRepository(System.String,System
.Type)">
<summary>
Creates a repository with the specified name and repository type.
</summary>
<remarks>
<para>
The <paramref name="repository"/> name must be unique. Repositories
cannot be redefined.
An <see cref="T:System.Exception"/> will be thrown if the repository
already exists.
</para>
</remarks>
<param name="repository">The name of the repository, this must be un
ique to the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
<exception cref="T:log4net.Core.LogException">The specified reposito
ry already exists.</exception>
</member>
<member name="M:log4net.LogManager.CreateDomain(System.Reflection.Assemb
ly,System.Type)">
<summary>
Creates a repository for the specified assembly and repository type.
</summary>
<remarks>
<para>
<b>CreateDomain is obsolete. Use CreateRepository instead of CreateD
omain.</b>
</para>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to get the name
of the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
</member>
<member name="M:log4net.LogManager.CreateRepository(System.Reflection.As
sembly,System.Type)">
<summary>
Creates a repository for the specified assembly and repository type.
</summary>
<remarks>
<para>
The <see cref="T:log4net.Repository.ILoggerRepository"/> created wil
l be associated with the repository
specified such that a call to <see cref="M:GetRepository(Assembly)"/
> with the
same assembly specified will return the same repository instance.
</para>
</remarks>
<param name="repositoryAssembly">The assembly to use to get the name
of the repository.</param>
<param name="repositoryType">A <see cref="T:System.Type"/> that impl
ements <see cref="T:log4net.Repository.ILoggerRepository"/>
and has a no arg constructor. An instance of this type will be creat
ed to act
as the <see cref="T:log4net.Repository.ILoggerRepository"/> for the
repository specified.</param>
<returns>The <see cref="T:log4net.Repository.ILoggerRepository"/> cr
eated for the repository.</returns>
</member>
<member name="M:log4net.LogManager.GetAllRepositories">
<summary>
Gets the list of currently defined repositories.
</summary>
<remarks>
<para>
Get an array of all the <see cref="T:log4net.Repository.ILoggerRepos
itory"/> objects that have been created.
</para>
</remarks>
<returns>An array of all the known <see cref="T:log4net.Repository.I
LoggerRepository"/> objects.</returns>
</member>
<member name="M:log4net.LogManager.WrapLogger(log4net.Core.ILogger)">
<summary>
Looks up the wrapper object for the logger specified.
</summary>
<param name="logger">The logger to get the wrapper for.</param>
<returns>The wrapper for the logger specified.</returns>
</member>
<member name="M:log4net.LogManager.WrapLoggers(log4net.Core.ILogger[])">
<summary>
Looks up the wrapper objects for the loggers specified.
</summary>
<param name="loggers">The loggers to get the wrappers for.</param>
<returns>The wrapper objects for the loggers specified.</returns>
</member>
<member name="M:log4net.LogManager.WrapperCreationHandler(log4net.Core.I
Logger)">
<summary>
Create the <see cref="T:log4net.Core.ILoggerWrapper"/> objects used
by
this manager.
</summary>
<param name="logger">The logger to wrap.</param>
<returns>The wrapper for the logger specified.</returns>
</member>
<member name="F:log4net.LogManager.s_wrapperMap">
<summary>
The wrapper map to use to hold the <see cref="T:log4net.Core.LogImpl
"/> objects.
</summary>
</member>
<member name="T:log4net.MDC">
<summary>
Implementation of Mapped Diagnostic Contexts.
</summary>
<remarks>
<note>
<para>
The MDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Properties"/>.
The current MDC implementation forwards to the <c>ThreadContext.Prop
erties</c>.
</para>
</note>
<para>
The MDC class is similar to the <see cref="T:log4net.NDC"/> class ex
cept that it is
based on a map instead of a stack. It provides <i>mapped
diagnostic contexts</i>. A <i>Mapped Diagnostic Context</i>, or
MDC in short, is an instrument for distinguishing interleaved log
output from different sources. Log output is typically interleaved
when a server handles multiple clients near-simultaneously.
</para>
<para>
The MDC is managed on a per thread basis.
</para>
</remarks>
<threadsafety static="true" instance="true"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.MDC.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.MDC"/> class.

</summary>
<remarks>
Uses a private access modifier to prevent instantiation of this clas
s.
</remarks>
</member>
<member name="M:log4net.MDC.Get(System.String)">
<summary>
Gets the context value identified by the <paramref name="key"/> para
meter.
</summary>
<param name="key">The key to lookup in the MDC.</param>
<returns>The string value held for the key, or a <c>null</c> referen
ce if no corresponding value is found.</returns>
<remarks>
<note>
<para>
The MDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Properties"/>.
The current MDC implementation forwards to the <c>ThreadContext.Prop
erties</c>.
</para>
</note>
<para>
If the <paramref name="key"/> parameter does not look up to a
previously defined context then <c>null</c> will be returned.
</para>
</remarks>
</member>
<member name="M:log4net.MDC.Set(System.String,System.String)">
<summary>
Add an entry to the MDC
</summary>
<param name="key">The key to store the value under.</param>
<param name="value">The value to store.</param>
<remarks>
<note>
<para>
The MDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Properties"/>.
The current MDC implementation forwards to the <c>ThreadContext.Prop
erties</c>.
</para>
</note>
<para>
Puts a context value (the <paramref name="value"/> parameter) as ide
ntified
with the <paramref name="key"/> parameter into the current thread's
context map.
</para>
<para>
If a value is already defined for the <paramref name="key"/>
specified then the value will be replaced. If the <paramref name="va
lue"/>
is specified as <c>null</c> then the key value mapping will be remov
ed.
</para>
</remarks>
</member>
<member name="M:log4net.MDC.Remove(System.String)">
<summary>
Removes the key value mapping for the key specified.
</summary>
<param name="key">The key to remove.</param>
<remarks>
<note>
<para>
The MDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Properties"/>.
The current MDC implementation forwards to the <c>ThreadContext.Prop
erties</c>.
</para>
</note>
<para>
Remove the specified entry from this thread's MDC
</para>
</remarks>
</member>
<member name="M:log4net.MDC.Clear">
<summary>
Clear all entries in the MDC
</summary>
<remarks>
<note>
<para>
The MDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Properties"/>.
The current MDC implementation forwards to the <c>ThreadContext.Prop
erties</c>.
</para>
</note>
<para>
Remove all the entries from this thread's MDC
</para>
</remarks>
</member>
<member name="T:log4net.NDC">
<summary>
Implementation of Nested Diagnostic Contexts.
</summary>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
A Nested Diagnostic Context, or NDC in short, is an instrument
to distinguish interleaved log output from different sources. Log
output is typically interleaved when a server handles multiple
clients near-simultaneously.
</para>
<para>
Interleaved log output can still be meaningful if each log entry
from different contexts had a distinctive stamp. This is where NDCs
come into play.
</para>
<para>
Note that NDCs are managed on a per thread basis. The NDC class
is made up of static methods that operate on the context of the
calling thread.
</para>
</remarks>
<example>How to push a message into the context
<code lang="C#">
using(NDC.Push("my context message"))
{
... all log calls will have 'my context message' included ...

} // at the end of the using block the message is automatically remo
ved
</code>
</example>
<threadsafety static="true" instance="true"/>
<author>Nicko Cadell</author>
<author>Gert Driesen</author>
</member>
<member name="M:log4net.NDC.#ctor">
<summary>
Initializes a new instance of the <see cref="T:log4net.NDC"/> class.

</summary>
<remarks>
Uses a private access modifier to prevent instantiation of this clas
s.
</remarks>
</member>
<member name="M:log4net.NDC.Clear">
<summary>
Clears all the contextual information held on the current thread.
</summary>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
Clears the stack of NDC data held on the current thread.
</para>
</remarks>
</member>
<member name="M:log4net.NDC.CloneStack">
<summary>
Creates a clone of the stack of context information.
</summary>
<returns>A clone of the context info for this thread.</returns>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
The results of this method can be passed to the <see cref="M:log4net
.NDC.Inherit(System.Collections.Stack)"/>
method to allow child threads to inherit the context of their
parent thread.
</para>
</remarks>
</member>
<member name="M:log4net.NDC.Inherit(System.Collections.Stack)">
<summary>
Inherits the contextual information from another thread.
</summary>
<param name="stack">The context stack to inherit.</param>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
This thread will use the context information from the stack
supplied. This can be used to initialize child threads with
the same contextual information as their parent threads. These
contexts will <b>NOT</b> be shared. Any further contexts that
are pushed onto the stack will not be visible to the other.
Call <see cref="M:log4net.NDC.CloneStack"/> to obtain a stack to pas
s to
this method.
</para>
</remarks>
</member>
<member name="M:log4net.NDC.Pop">
<summary>
Removes the top context from the stack.
</summary>
<returns>
The message in the context that was removed from the top
of the stack.
</returns>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
Remove the top context from the stack, and return
it to the caller. If the stack is empty then an
empty string (not <c>null</c>) is returned.
</para>
</remarks>
</member>
<member name="M:log4net.NDC.Push(System.String)">
<summary>
Pushes a new context message.
</summary>
<param name="message">The new context message.</param>
<returns>
An <see cref="T:System.IDisposable"/> that can be used to clean up
the context stack.
</returns>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
Pushes a new context onto the context stack. An <see cref="T:System.
IDisposable"/>
is returned that can be used to clean up the context stack. This
can be easily combined with the <c>using</c> keyword to scope the
context.
</para>
</remarks>
<example>Simple example of using the <c>Push</c> method with the <c>
using</c> keyword.
<code lang="C#">
using(log4net.NDC.Push("NDC_Message"))
{
log.Warn("This should have an NDC message");
}
</code>
</example>
</member>
<member name="M:log4net.NDC.Remove">
<summary>
Removes the context information for this thread. It is
not required to call this method.
</summary>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
This method is not implemented.
</para>
</remarks>
</member>
<member name="M:log4net.NDC.SetMaxDepth(System.Int32)">
<summary>
Forces the stack depth to be at most <paramref name="maxDepth"/>.
</summary>
<param name="maxDepth">The maximum depth of the stack</param>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
Forces the stack depth to be at most <paramref name="maxDepth"/>.
This may truncate the head of the stack. This only affects the
stack in the current thread. Also it does not prevent it from
growing, it only sets the maximum depth at the time of the
call. This can be used to return to a known context depth.
</para>
</remarks>
</member>
<member name="P:log4net.NDC.Depth">
<summary>
Gets the current context depth.
</summary>
<value>The current context depth.</value>
<remarks>
<note>
<para>
The NDC is deprecated and has been replaced by the <see cref="P:log4
net.ThreadContext.Stacks"/>.
The current NDC implementation forwards to the <c>ThreadContext.Stac
ks["NDC"]</c>.
</para>
</note>
<para>
The number of context values pushed onto the context stack.
</para>
<para>
Used to record the current depth of the context. This can then
be restored using the <see cref="M:log4net.NDC.SetMaxDepth(System.In
t32)"/> method.
</para>
</remarks>
<seealso cref="M:log4net.NDC.SetMaxDepth(System.Int32)"/>
</member>
<member name="T:log4net.ThreadContext">
<summary>
The log4net Thread Context.
</summary>
<remarks>
<para>
The <c>ThreadContext</c> provides a location for thread specific deb
ugging
information to be stored.
The <c>ThreadContext</c> properties override any <see cref="T:log4ne
t.GlobalContext"/>
properties with the same name.
</para>
<para>
The thread context has a properties map and a stack.
The properties and stack can
be included in the output of log messages. The <see cref="T:log4net.
Layout.PatternLayout"/>
supports selecting and outputting these properties.
</para>
<para>
The Thread Context provides a diagnostic context for the current thr
ead.
This is an instrument for distinguishing interleaved log
output from different sources. Log output is typically interleaved
when a server handles multiple clients near-simultaneously.
</para>
<para>
The Thread Context is managed on a per thread basis.
</para>
</remarks>
<example>Example of using the thread context properties to store a u
sername.
<code lang="C#">
ThreadContext.Properties["user"] = userName;
log.Info("This log message has a ThreadContext Property called 'user
'");
</code>
</example>
<example>Example of how to push a message into the context stack
<code lang="C#">
using(ThreadContext.Stacks["NDC"].Push("my context message"))
{
log.Info("This log message has a ThreadContext Stack message tha
t includes 'my context message'");

} // at the end of the using block the message is automatically popp
ed
</code>
</example>
<threadsafety static="true" instance="true"/>
<author>Nicko Cadell</author>
</member>
<member name="M:log4net.ThreadContext.#ctor">
<summary>
Private Constructor.
</summary>
<remarks>
<para>
Uses a private access modifier to prevent instantiation of this clas
s.
</para>
</remarks>
</member>
<member name="F:log4net.ThreadContext.s_properties">
<summary>
The thread context properties instance
</summary>
</member>
<member name="F:log4net.ThreadContext.s_stacks">
<summary>
The thread context stacks instance
</summary>
</member>
<member name="P:log4net.ThreadContext.Properties">
<summary>
The thread properties map
</summary>
<value>
The thread properties map
</value>
<remarks>
<para>
The <c>ThreadContext</c> properties override any <see cref="T:log4ne
t.GlobalContext"/>
properties with the same name.
</para>
</remarks>
</member>
<member name="P:log4net.ThreadContext.Stacks">
<summary>
The thread stacks
</summary>
<value>
stack map
</value>
<remarks>
<para>
The thread local stacks.
</para>
</remarks>
</member>
</members>
</doc>

Das könnte Ihnen auch gefallen