• R/O
  • SSH
  • HTTPS

ewatch: Commit


Commit MetaInfo

Revision118 (tree)
Zeit2020-09-29 13:12:03
Autorbananajinn

Log Message

log4net更新

Ändern Zusammenfassung

Diff

--- trunk/EWatch/EWatch/Libraries/log4net.xml (revision 117)
+++ trunk/EWatch/EWatch/Libraries/log4net.xml (revision 118)
@@ -55,38 +55,38 @@
5555 <example>
5656 An example configuration to log to the above table:
5757 <code lang="XML" escaped="true">
58- <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
59- <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
60- <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa"/>
61- <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
58+ <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender" >
59+ <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
60+ <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa" />
61+ <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
6262 <parameter>
63- <parameterName value="@log_date"/>
64- <dbType value="DateTime"/>
65- <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
63+ <parameterName value="@log_date" />
64+ <dbType value="DateTime" />
65+ <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
6666 </parameter>
6767 <parameter>
68- <parameterName value="@thread"/>
69- <dbType value="String"/>
70- <size value="255"/>
71- <layout type="log4net.Layout.PatternLayout" value="%thread"/>
68+ <parameterName value="@thread" />
69+ <dbType value="String" />
70+ <size value="255" />
71+ <layout type="log4net.Layout.PatternLayout" value="%thread" />
7272 </parameter>
7373 <parameter>
74- <parameterName value="@log_level"/>
75- <dbType value="String"/>
76- <size value="50"/>
77- <layout type="log4net.Layout.PatternLayout" value="%level"/>
74+ <parameterName value="@log_level" />
75+ <dbType value="String" />
76+ <size value="50" />
77+ <layout type="log4net.Layout.PatternLayout" value="%level" />
7878 </parameter>
7979 <parameter>
80- <parameterName value="@logger"/>
81- <dbType value="String"/>
82- <size value="255"/>
83- <layout type="log4net.Layout.PatternLayout" value="%logger"/>
80+ <parameterName value="@logger" />
81+ <dbType value="String" />
82+ <size value="255" />
83+ <layout type="log4net.Layout.PatternLayout" value="%logger" />
8484 </parameter>
8585 <parameter>
86- <parameterName value="@message"/>
87- <dbType value="String"/>
88- <size value="4000"/>
89- <layout type="log4net.Layout.PatternLayout" value="%message"/>
86+ <parameterName value="@message" />
87+ <dbType value="String" />
88+ <size value="4000" />
89+ <layout type="log4net.Layout.PatternLayout" value="%message" />
9090 </parameter>
9191 </appender>
9292 </code>
@@ -96,1042 +96,207 @@
9696 <author>Gert Driesen</author>
9797 <author>Lance Nehring</author>
9898 </member>
99- <member name="T:log4net.Appender.BufferingAppenderSkeleton">
100- <summary>
101- Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/> that
102- buffers events in a fixed size buffer.
99+ <member name="M:log4net.Appender.AdoNetAppender.#ctor">
100+ <summary>
101+ Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppender" /> class.
103102 </summary>
104103 <remarks>
105- <para>
106- This base class should be used by appenders that need to buffer a
107- number of events before logging them. For example the <see cref="T:log4net.Appender.AdoNetAppender"/>
108- buffers events and then submits the entire contents of the buffer to
109- the underlying database in one go.
110- </para>
111- <para>
112- Subclasses should override the <see cref="M:SendBuffer(LoggingEvent[])"/>
113- method to deliver the buffered events.
114- </para>
115- <para>The BufferingAppenderSkeleton maintains a fixed size cyclic
116- buffer of events. The size of the buffer is set using
117- the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> property.
118- </para>
119- <para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is used to inspect
120- each event as it arrives in the appender. If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
121- triggers, then the current buffer is sent immediately
122- (see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the event
123- is stored in the buffer. For example, an evaluator can be used to
124- deliver the events immediately when an ERROR event arrives.
125- </para>
126- <para>
127- The buffering appender can be configured in a <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode.
128- By default the appender is NOT lossy. When the buffer is full all
129- the buffered events are sent with <see cref="M:SendBuffer(LoggingEvent[])"/>.
130- If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property is set to <c>true</c> then the
131- buffer will not be sent when it is full, and new events arriving
132- in the appender will overwrite the oldest event in the buffer.
133- In lossy mode the buffer will only be sent when the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
134- triggers. This can be useful behavior when you need to know about
135- ERROR events but not about events with a lower level, configure an
136- evaluator that will trigger when an ERROR event arrives, the whole
137- buffer will be sent which gives a history of events leading up to
138- the ERROR event.
139- </para>
104+ Public default constructor to initialize a new instance of this class.
140105 </remarks>
141- <author>Nicko Cadell</author>
142- <author>Gert Driesen</author>
143106 </member>
144- <member name="T:log4net.Appender.AppenderSkeleton">
107+ <member name="P:log4net.Appender.AdoNetAppender.ConnectionString">
145108 <summary>
146- Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/>.
109+ Gets or sets the database connection string that is used to connect to
110+ the database.
147111 </summary>
112+ <value>
113+ The database connection string used to connect to the database.
114+ </value>
148115 <remarks>
149116 <para>
150- This class provides the code for common functionality, such
151- as support for threshold filtering and support for general filters.
117+ The connections string is specific to the connection type.
118+ See <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> for more information.
152119 </para>
153- <para>
154- Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
155- they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
156- be called after the appenders properties have been configured.
157- </para>
158120 </remarks>
159- <author>Nicko Cadell</author>
160- <author>Gert Driesen</author>
121+ <example>Connection string for MS Access via ODBC:
122+ <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>
123+ </example>
124+ <example>Another connection string for MS Access via ODBC:
125+ <code>"Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"</code>
126+ </example>
127+ <example>Connection string for MS Access via OLE DB:
128+ <code>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"</code>
129+ </example>
161130 </member>
162- <member name="T:log4net.Appender.IAppender">
131+ <member name="P:log4net.Appender.AdoNetAppender.AppSettingsKey">
163132 <summary>
164- Implement this interface for your own strategies for printing log statements.
133+ The appSettings key from App.Config that contains the connection string.
165134 </summary>
166- <remarks>
167- <para>
168- Implementors should consider extending the <see cref="T:log4net.Appender.AppenderSkeleton"/>
169- class which provides a default implementation of this interface.
170- </para>
171- <para>
172- Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
173- they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
174- be called after the appenders properties have been configured.
175- </para>
176- </remarks>
177- <author>Nicko Cadell</author>
178- <author>Gert Driesen</author>
179135 </member>
180- <member name="M:log4net.Appender.IAppender.Close">
136+ <member name="P:log4net.Appender.AdoNetAppender.ConnectionStringName">
181137 <summary>
182- Closes the appender and releases resources.
138+ The connectionStrings key from App.Config that contains the connection string.
183139 </summary>
184140 <remarks>
185- <para>
186- Releases any resources allocated within the appender such as file handles,
187- network connections, etc.
188- </para>
189- <para>
190- It is a programming error to append to a closed appender.
191- </para>
141+ This property requires at least .NET 2.0.
192142 </remarks>
193143 </member>
194- <member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)">
144+ <member name="P:log4net.Appender.AdoNetAppender.ConnectionType">
195145 <summary>
196- Log the logging event in Appender specific way.
146+ Gets or sets the type name of the <see cref="T:System.Data.IDbConnection"/> connection
147+ that should be created.
197148 </summary>
198- <param name="loggingEvent">The event to log</param>
149+ <value>
150+ The type name of the <see cref="T:System.Data.IDbConnection"/> connection.
151+ </value>
199152 <remarks>
200153 <para>
201- This method is called to log a message into this appender.
154+ The type name of the ADO.NET provider to use.
202155 </para>
203- </remarks>
204- </member>
205- <member name="P:log4net.Appender.IAppender.Name">
206- <summary>
207- Gets or sets the name of this appender.
208- </summary>
209- <value>The name of the appender.</value>
210- <remarks>
211- <para>The name uniquely identifies the appender.</para>
212- </remarks>
213- </member>
214- <member name="T:log4net.Appender.IBulkAppender">
215- <summary>
216- Interface for appenders that support bulk logging.
217- </summary>
218- <remarks>
219156 <para>
220- This interface extends the <see cref="T:log4net.Appender.IAppender"/> interface to
221- support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> objects. Appenders
222- should only implement this interface if they can bulk log efficiently.
157+ The default is to use the OLE DB provider.
223158 </para>
224159 </remarks>
225- <author>Nicko Cadell</author>
160+ <example>Use the OLE DB Provider. This is the default value.
161+ <code>System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
162+ </example>
163+ <example>Use the MS SQL Server Provider.
164+ <code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
165+ </example>
166+ <example>Use the ODBC Provider.
167+ <code>Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral</code>
168+ This is an optional package that you can download from
169+ <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
170+ search for <b>ODBC .NET Data Provider</b>.
171+ </example>
172+ <example>Use the Oracle Provider.
173+ <code>System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
174+ This is an optional package that you can download from
175+ <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
176+ search for <b>.NET Managed Provider for Oracle</b>.
177+ </example>
226178 </member>
227- <member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.LoggingEvent[])">
179+ <member name="P:log4net.Appender.AdoNetAppender.CommandText">
228180 <summary>
229- Log the array of logging events in Appender specific way.
181+ Gets or sets the command text that is used to insert logging events
182+ into the database.
230183 </summary>
231- <param name="loggingEvents">The events to log</param>
184+ <value>
185+ The command text used to insert logging events into the database.
186+ </value>
232187 <remarks>
233188 <para>
234- This method is called to log an array of events into this appender.
189+ Either the text of the prepared statement or the
190+ name of the stored procedure to execute to write into
191+ the database.
235192 </para>
236- </remarks>
237- </member>
238- <member name="T:log4net.Core.IOptionHandler">
239- <summary>
240- Interface used to delay activate a configured object.
241- </summary>
242- <remarks>
243193 <para>
244- This allows an object to defer activation of its options until all
245- options have been set. This is required for components which have
246- related options that remain ambiguous until all are set.
194+ The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property determines if
195+ this text is a prepared statement or a stored procedure.
247196 </para>
248197 <para>
249- If a component implements this interface then the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method
250- must be called by the container after its all the configured properties have been set
251- and before the component can be used.
198+ If this property is not set, the command text is retrieved by invoking
199+ <see cref="M:log4net.Appender.AdoNetAppender.GetLogStatement(log4net.Core.LoggingEvent)"/>.
252200 </para>
253201 </remarks>
254- <author>Nicko Cadell</author>
255202 </member>
256- <member name="M:log4net.Core.IOptionHandler.ActivateOptions">
203+ <member name="P:log4net.Appender.AdoNetAppender.CommandType">
257204 <summary>
258- Activate the options that were previously set with calls to properties.
205+ Gets or sets the command type to execute.
259206 </summary>
260- <remarks>
261- <para>
262- This allows an object to defer activation of its options until all
263- options have been set. This is required for components which have
264- related options that remain ambiguous until all are set.
265- </para>
266- <para>
267- If a component implements this interface then this method must be called
268- after its properties have been set before the component can be used.
269- </para>
270- </remarks>
271- </member>
272- <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
273- <summary>
274- Initial buffer size
275- </summary>
276- </member>
277- <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapacity">
278- <summary>
279- Maximum buffer size before it is recycled
280- </summary>
281- </member>
282- <member name="M:log4net.Appender.AppenderSkeleton.#ctor">
283- <summary>
284- Default constructor
285- </summary>
286- <remarks>
287- <para>Empty default constructor</para>
288- </remarks>
289- </member>
290- <member name="M:log4net.Appender.AppenderSkeleton.Finalize">
291- <summary>
292- Finalizes this appender by calling the implementation's
293- <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
294- </summary>
295- <remarks>
296- <para>
297- If this appender has not been closed then the <c>Finalize</c> method
298- will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
299- </para>
300- </remarks>
301- </member>
302- <member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
303- <summary>
304- Initialize the appender based on the options set
305- </summary>
306- <remarks>
307- <para>
308- This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
309- activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> method must
310- be called on this object after the configuration properties have
311- been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> is called this
312- object is in an undefined state and must not be used.
313- </para>
314- <para>
315- If any of the configuration properties are modified then
316- <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> must be called again.
317- </para>
318- </remarks>
319- </member>
320- <member name="M:log4net.Appender.AppenderSkeleton.Close">
321- <summary>
322- Closes the appender and release resources.
323- </summary>
324- <remarks>
325- <para>
326- Release any resources allocated within the appender such as file handles,
327- network connections, etc.
328- </para>
329- <para>
330- It is a programming error to append to a closed appender.
331- </para>
332- <para>
333- This method cannot be overridden by subclasses. This method
334- delegates the closing of the appender to the <see cref="M:log4net.Appender.AppenderSkeleton.OnClose"/>
335- method which must be overridden in the subclass.
336- </para>
337- </remarks>
338- </member>
339- <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)">
340- <summary>
341- Performs threshold checks and invokes filters before
342- delegating actual logging to the subclasses specific
343- <see cref="M:Append(LoggingEvent)"/> method.
344- </summary>
345- <param name="loggingEvent">The event to log.</param>
346- <remarks>
347- <para>
348- This method cannot be overridden by derived classes. A
349- derived class should override the <see cref="M:Append(LoggingEvent)"/> method
350- which is called by this method.
351- </para>
352- <para>
353- The implementation of this method is as follows:
354- </para>
355- <para>
356- <list type="bullet">
357- <item>
358- <description>
359- Checks that the severity of the <paramref name="loggingEvent"/>
360- is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
361- appender.</description>
362- </item>
363- <item>
364- <description>
365- Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
366- <paramref name="loggingEvent"/>.
367- </description>
368- </item>
369- <item>
370- <description>
371- Calls <see cref="M:PreAppendCheck()"/> and checks that
372- it returns <c>true</c>.</description>
373- </item>
374- </list>
375- </para>
376- <para>
377- If all of the above steps succeed then the <paramref name="loggingEvent"/>
378- will be passed to the abstract <see cref="M:Append(LoggingEvent)"/> method.
379- </para>
380- </remarks>
381- </member>
382- <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])">
383- <summary>
384- Performs threshold checks and invokes filters before
385- delegating actual logging to the subclasses specific
386- <see cref="M:Append(LoggingEvent[])"/> method.
387- </summary>
388- <param name="loggingEvents">The array of events to log.</param>
389- <remarks>
390- <para>
391- This method cannot be overridden by derived classes. A
392- derived class should override the <see cref="M:Append(LoggingEvent[])"/> method
393- which is called by this method.
394- </para>
395- <para>
396- The implementation of this method is as follows:
397- </para>
398- <para>
399- <list type="bullet">
400- <item>
401- <description>
402- Checks that the severity of the <paramref name="loggingEvents"/>
403- is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
404- appender.</description>
405- </item>
406- <item>
407- <description>
408- Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
409- <paramref name="loggingEvents"/>.
410- </description>
411- </item>
412- <item>
413- <description>
414- Calls <see cref="M:PreAppendCheck()"/> and checks that
415- it returns <c>true</c>.</description>
416- </item>
417- </list>
418- </para>
419- <para>
420- If all of the above steps succeed then the <paramref name="loggingEvents"/>
421- will be passed to the <see cref="M:Append(LoggingEvent[])"/> method.
422- </para>
423- </remarks>
424- </member>
425- <member name="M:log4net.Appender.AppenderSkeleton.FilterEvent(log4net.Core.LoggingEvent)">
426- <summary>
427- Test if the logging event should we output by this appender
428- </summary>
429- <param name="loggingEvent">the event to test</param>
430- <returns><c>true</c> if the event should be output, <c>false</c> if the event should be ignored</returns>
431- <remarks>
432- <para>
433- This method checks the logging event against the threshold level set
434- on this appender and also against the filters specified on this
435- appender.
436- </para>
437- <para>
438- The implementation of this method is as follows:
439- </para>
440- <para>
441- <list type="bullet">
442- <item>
443- <description>
444- Checks that the severity of the <paramref name="loggingEvent"/>
445- is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
446- appender.</description>
447- </item>
448- <item>
449- <description>
450- Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
451- <paramref name="loggingEvent"/>.
452- </description>
453- </item>
454- </list>
455- </para>
456- </remarks>
457- </member>
458- <member name="M:log4net.Appender.AppenderSkeleton.AddFilter(log4net.Filter.IFilter)">
459- <summary>
460- Adds a filter to the end of the filter chain.
461- </summary>
462- <param name="filter">the filter to add to this appender</param>
463- <remarks>
464- <para>
465- The Filters are organized in a linked list.
466- </para>
467- <para>
468- Setting this property causes the new filter to be pushed onto the
469- back of the filter chain.
470- </para>
471- </remarks>
472- </member>
473- <member name="M:log4net.Appender.AppenderSkeleton.ClearFilters">
474- <summary>
475- Clears the filter list for this appender.
476- </summary>
477- <remarks>
478- <para>
479- Clears the filter list for this appender.
480- </para>
481- </remarks>
482- </member>
483- <member name="M:log4net.Appender.AppenderSkeleton.IsAsSevereAsThreshold(log4net.Core.Level)">
484- <summary>
485- Checks if the message level is below this appender's threshold.
486- </summary>
487- <param name="level"><see cref="T:log4net.Core.Level"/> to test against.</param>
488- <remarks>
489- <para>
490- If there is no threshold set, then the return value is always <c>true</c>.
491- </para>
492- </remarks>
493- <returns>
494- <c>true</c> if the <paramref name="level"/> meets the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/>
495- requirements of this appender.
496- </returns>
497- </member>
498- <member name="M:log4net.Appender.AppenderSkeleton.OnClose">
499- <summary>
500- Is called when the appender is closed. Derived classes should override
501- this method if resources need to be released.
502- </summary>
503- <remarks>
504- <para>
505- Releases any resources allocated within the appender such as file handles,
506- network connections, etc.
507- </para>
508- <para>
509- It is a programming error to append to a closed appender.
510- </para>
511- </remarks>
512- </member>
513- <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)">
514- <summary>
515- Subclasses of <see cref="T:log4net.Appender.AppenderSkeleton"/> should implement this method
516- to perform actual logging.
517- </summary>
518- <param name="loggingEvent">The event to append.</param>
519- <remarks>
520- <para>
521- A subclass must implement this method to perform
522- logging of the <paramref name="loggingEvent"/>.
523- </para>
524- <para>This method will be called by <see cref="M:DoAppend(LoggingEvent)"/>
525- if all the conditions listed for that method are met.
526- </para>
527- <para>
528- To restrict the logging of events in the appender
529- override the <see cref="M:PreAppendCheck()"/> method.
530- </para>
531- </remarks>
532- </member>
533- <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])">
534- <summary>
535- Append a bulk array of logging events.
536- </summary>
537- <param name="loggingEvents">the array of logging events</param>
538- <remarks>
539- <para>
540- This base class implementation calls the <see cref="M:Append(LoggingEvent)"/>
541- method for each element in the bulk array.
542- </para>
543- <para>
544- A sub class that can better process a bulk array of events should
545- override this method in addition to <see cref="M:Append(LoggingEvent)"/>.
546- </para>
547- </remarks>
548- </member>
549- <member name="M:log4net.Appender.AppenderSkeleton.PreAppendCheck">
550- <summary>
551- Called before <see cref="M:Append(LoggingEvent)"/> as a precondition.
552- </summary>
553- <remarks>
554- <para>
555- This method is called by <see cref="M:DoAppend(LoggingEvent)"/>
556- before the call to the abstract <see cref="M:Append(LoggingEvent)"/> method.
557- </para>
558- <para>
559- This method can be overridden in a subclass to extend the checks
560- made before the event is passed to the <see cref="M:Append(LoggingEvent)"/> method.
561- </para>
562- <para>
563- A subclass should ensure that they delegate this call to
564- this base class if it is overridden.
565- </para>
566- </remarks>
567- <returns><c>true</c> if the call to <see cref="M:Append(LoggingEvent)"/> should proceed.</returns>
568- </member>
569- <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)">
570- <summary>
571- Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
572- </summary>
573- <param name="loggingEvent">The event to render.</param>
574- <returns>The event rendered as a string.</returns>
575- <remarks>
576- <para>
577- Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to
578- a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
579- set to render the <paramref name="loggingEvent"/> to
580- a string.
581- </para>
582- <para>If there is exception data in the logging event and
583- the layout does not process the exception, this method
584- will append the exception text to the rendered string.
585- </para>
586- <para>
587- Where possible use the alternative version of this method
588- <see cref="M:RenderLoggingEvent(TextWriter,LoggingEvent)"/>.
589- That method streams the rendering onto an existing Writer
590- which can give better performance if the caller already has
591- a <see cref="T:System.IO.TextWriter"/> open and ready for writing.
592- </para>
593- </remarks>
594- </member>
595- <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)">
596- <summary>
597- Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
598- </summary>
599- <param name="loggingEvent">The event to render.</param>
600- <param name="writer">The TextWriter to write the formatted event to</param>
601- <remarks>
602- <para>
603- Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to
604- a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
605- set to render the <paramref name="loggingEvent"/> to
606- a string.
607- </para>
608- <para>If there is exception data in the logging event and
609- the layout does not process the exception, this method
610- will append the exception text to the rendered string.
611- </para>
612- <para>
613- Use this method in preference to <see cref="M:RenderLoggingEvent(LoggingEvent)"/>
614- where possible. If, however, the caller needs to render the event
615- to a string then <see cref="M:RenderLoggingEvent(LoggingEvent)"/> does
616- provide an efficient mechanism for doing so.
617- </para>
618- </remarks>
619- </member>
620- <member name="F:log4net.Appender.AppenderSkeleton.m_layout">
621- <summary>
622- The layout of this appender.
623- </summary>
624- <remarks>
625- See <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> for more information.
626- </remarks>
627- </member>
628- <member name="F:log4net.Appender.AppenderSkeleton.m_name">
629- <summary>
630- The name of this appender.
631- </summary>
632- <remarks>
633- See <see cref="P:log4net.Appender.AppenderSkeleton.Name"/> for more information.
634- </remarks>
635- </member>
636- <member name="F:log4net.Appender.AppenderSkeleton.m_threshold">
637- <summary>
638- The level threshold of this appender.
639- </summary>
640- <remarks>
641- <para>
642- There is no level threshold filtering by default.
643- </para>
644- <para>
645- See <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> for more information.
646- </para>
647- </remarks>
648- </member>
649- <member name="F:log4net.Appender.AppenderSkeleton.m_errorHandler">
650- <summary>
651- It is assumed and enforced that errorHandler is never null.
652- </summary>
653- <remarks>
654- <para>
655- It is assumed and enforced that errorHandler is never null.
656- </para>
657- <para>
658- See <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> for more information.
659- </para>
660- </remarks>
661- </member>
662- <member name="F:log4net.Appender.AppenderSkeleton.m_headFilter">
663- <summary>
664- The first filter in the filter chain.
665- </summary>
666- <remarks>
667- <para>
668- Set to <c>null</c> initially.
669- </para>
670- <para>
671- See <see cref="T:log4net.Filter.IFilter"/> for more information.
672- </para>
673- </remarks>
674- </member>
675- <member name="F:log4net.Appender.AppenderSkeleton.m_tailFilter">
676- <summary>
677- The last filter in the filter chain.
678- </summary>
679- <remarks>
680- See <see cref="T:log4net.Filter.IFilter"/> for more information.
681- </remarks>
682- </member>
683- <member name="F:log4net.Appender.AppenderSkeleton.m_closed">
684- <summary>
685- Flag indicating if this appender is closed.
686- </summary>
687- <remarks>
688- See <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> for more information.
689- </remarks>
690- </member>
691- <member name="F:log4net.Appender.AppenderSkeleton.m_recursiveGuard">
692- <summary>
693- The guard prevents an appender from repeatedly calling its own DoAppend method
694- </summary>
695- </member>
696- <member name="F:log4net.Appender.AppenderSkeleton.m_renderWriter">
697- <summary>
698- StringWriter used to render events
699- </summary>
700- </member>
701- <member name="F:log4net.Appender.AppenderSkeleton.declaringType">
702- <summary>
703- The fully qualified type of the AppenderSkeleton class.
704- </summary>
705- <remarks>
706- Used by the internal logger to record the Type of the
707- log message.
708- </remarks>
709- </member>
710- <member name="P:log4net.Appender.AppenderSkeleton.Threshold">
711- <summary>
712- Gets or sets the threshold <see cref="T:log4net.Core.Level"/> of this appender.
713- </summary>
714207 <value>
715- The threshold <see cref="T:log4net.Core.Level"/> of the appender.
208+ The command type to execute.
716209 </value>
717210 <remarks>
718211 <para>
719- All log events with lower level than the threshold level are ignored
720- by the appender.
212+ This value may be either <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify
213+ that the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> is a prepared statement to execute,
214+ or <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify that the
215+ <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property is the name of a stored procedure
216+ to execute.
721217 </para>
722218 <para>
723- In configuration files this option is specified by setting the
724- value of the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> option to a level
725- string, such as "DEBUG", "INFO" and so on.
219+ The default value is <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>).
726220 </para>
727221 </remarks>
728222 </member>
729- <member name="P:log4net.Appender.AppenderSkeleton.ErrorHandler">
223+ <member name="P:log4net.Appender.AdoNetAppender.UseTransactions">
730224 <summary>
731- Gets or sets the <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
225+ Should transactions be used to insert logging events in the database.
732226 </summary>
733- <value>The <see cref="T:log4net.Core.IErrorHandler"/> of the appender</value>
734- <remarks>
735- <para>
736- The <see cref="T:log4net.Appender.AppenderSkeleton"/> provides a default
737- implementation for the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> property.
738- </para>
739- </remarks>
740- </member>
741- <member name="P:log4net.Appender.AppenderSkeleton.FilterHead">
742- <summary>
743- The filter chain.
744- </summary>
745- <value>The head of the filter chain filter chain.</value>
746- <remarks>
747- <para>
748- Returns the head Filter. The Filters are organized in a linked list
749- and so all Filters on this Appender are available through the result.
750- </para>
751- </remarks>
752- </member>
753- <member name="P:log4net.Appender.AppenderSkeleton.Layout">
754- <summary>
755- Gets or sets the <see cref="T:log4net.Layout.ILayout"/> for this appender.
756- </summary>
757- <value>The layout of the appender.</value>
758- <remarks>
759- <para>
760- See <see cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/> for more information.
761- </para>
762- </remarks>
763- <seealso cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
764- </member>
765- <member name="P:log4net.Appender.AppenderSkeleton.Name">
766- <summary>
767- Gets or sets the name of this appender.
768- </summary>
769- <value>The name of the appender.</value>
770- <remarks>
771- <para>
772- The name uniquely identifies the appender.
773- </para>
774- </remarks>
775- </member>
776- <member name="P:log4net.Appender.AppenderSkeleton.RequiresLayout">
777- <summary>
778- Tests if this appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
779- </summary>
780- <remarks>
781- <para>
782- In the rather exceptional case, where the appender
783- implementation admits a layout but can also work without it,
784- then the appender should return <c>true</c>.
785- </para>
786- <para>
787- This default implementation always returns <c>false</c>.
788- </para>
789- </remarks>
790- <returns>
791- <c>true</c> if the appender requires a layout object, otherwise <c>false</c>.
792- </returns>
793- </member>
794- <member name="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE">
795- <summary>
796- The default buffer size.
797- </summary>
798- <remarks>
799- The default size of the cyclic buffer used to store events.
800- This is set to 512 by default.
801- </remarks>
802- </member>
803- <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor">
804- <summary>
805- Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
806- </summary>
807- <remarks>
808- <para>
809- Protected default constructor to allow subclassing.
810- </para>
811- </remarks>
812- </member>
813- <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor(System.Boolean)">
814- <summary>
815- Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> class.
816- </summary>
817- <param name="eventMustBeFixed">the events passed through this appender must be
818- fixed by the time that they arrive in the derived class' <c>SendBuffer</c> method.</param>
819- <remarks>
820- <para>
821- Protected constructor to allow subclassing.
822- </para>
823- <para>
824- The <paramref name="eventMustBeFixed"/> should be set if the subclass
825- expects the events delivered to be fixed even if the
826- <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to zero, i.e. when no buffering occurs.
827- </para>
828- </remarks>
829- </member>
830- <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush">
831- <summary>
832- Flush the currently buffered events
833- </summary>
834- <remarks>
835- <para>
836- Flushes any events that have been buffered.
837- </para>
838- <para>
839- If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
840- of the buffer will NOT be flushed to the appender.
841- </para>
842- </remarks>
843- </member>
844- <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.Boolean)">
845- <summary>
846- Flush the currently buffered events
847- </summary>
848- <param name="flushLossyBuffer">set to <c>true</c> to flush the buffer of lossy events</param>
849- <remarks>
850- <para>
851- Flushes events that have been buffered. If <paramref name="flushLossyBuffer"/> is
852- <c>false</c> then events will only be flushed if this buffer is non-lossy mode.
853- </para>
854- <para>
855- If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
856- of the buffer will only be flushed if <paramref name="flushLossyBuffer"/> is <c>true</c>.
857- In this case the contents of the buffer will be tested against the
858- <see cref="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator"/> and if triggering will be output. All other buffered
859- events will be discarded.
860- </para>
861- <para>
862- If <paramref name="flushLossyBuffer"/> is <c>true</c> then the buffer will always
863- be emptied by calling this method.
864- </para>
865- </remarks>
866- </member>
867- <member name="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions">
868- <summary>
869- Initialize the appender based on the options set
870- </summary>
871- <remarks>
872- <para>
873- This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
874- activation scheme. The <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> method must
875- be called on this object after the configuration properties have
876- been set. Until <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> is called this
877- object is in an undefined state and must not be used.
878- </para>
879- <para>
880- If any of the configuration properties are modified then
881- <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> must be called again.
882- </para>
883- </remarks>
884- </member>
885- <member name="M:log4net.Appender.BufferingAppenderSkeleton.OnClose">
886- <summary>
887- Close this appender instance.
888- </summary>
889- <remarks>
890- <para>
891- Close this appender instance. If this appender is marked
892- as not <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> then the remaining events in
893- the buffer must be sent when the appender is closed.
894- </para>
895- </remarks>
896- </member>
897- <member name="M:log4net.Appender.BufferingAppenderSkeleton.Append(log4net.Core.LoggingEvent)">
898- <summary>
899- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
900- </summary>
901- <param name="loggingEvent">the event to log</param>
902- <remarks>
903- <para>
904- Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
905- </para>
906- <para>
907- The buffer will be sent (i.e. passed to the <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>
908- method) if one of the following conditions is met:
909- </para>
910- <list type="bullet">
911- <item>
912- <description>The cyclic buffer is full and this appender is
913- marked as not lossy (see <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>)</description>
914- </item>
915- <item>
916- <description>An <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> is set and
917- it is triggered for the <paramref name="loggingEvent"/>
918- specified.</description>
919- </item>
920- </list>
921- <para>
922- Before the event is stored in the buffer it is fixed
923- (see <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/>) to ensure that
924- any data referenced by the event will be valid when the buffer
925- is processed.
926- </para>
927- </remarks>
928- </member>
929- <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendFromBuffer(log4net.Core.LoggingEvent,log4net.Util.CyclicBuffer)">
930- <summary>
931- Sends the contents of the buffer.
932- </summary>
933- <param name="firstLoggingEvent">The first logging event.</param>
934- <param name="buffer">The buffer containing the events that need to be send.</param>
935- <remarks>
936- <para>
937- The subclass must override <see cref="M:SendBuffer(LoggingEvent[])"/>.
938- </para>
939- </remarks>
940- </member>
941- <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])">
942- <summary>
943- Sends the events.
944- </summary>
945- <param name="events">The events that need to be send.</param>
946- <remarks>
947- <para>
948- The subclass must override this method to process the buffered events.
949- </para>
950- </remarks>
951- </member>
952- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_bufferSize">
953- <summary>
954- The size of the cyclic buffer used to hold the logging events.
955- </summary>
956- <remarks>
957- Set to <see cref="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE"/> by default.
958- </remarks>
959- </member>
960- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_cb">
961- <summary>
962- The cyclic buffer used to store the logging events.
963- </summary>
964- </member>
965- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_evaluator">
966- <summary>
967- The triggering event evaluator that causes the buffer to be sent immediately.
968- </summary>
969- <remarks>
970- The object that is used to determine if an event causes the entire
971- buffer to be sent immediately. This field can be <c>null</c>, which
972- indicates that event triggering is not to be done. The evaluator
973- can be set using the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> property. If this appender
974- has the <see cref="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy"/> (<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property) set to
975- <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be set.
976- </remarks>
977- </member>
978- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy">
979- <summary>
980- Indicates if the appender should overwrite events in the cyclic buffer
981- when it becomes full, or if the buffer should be flushed when the
982- buffer is full.
983- </summary>
984- <remarks>
985- If this field is set to <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must
986- be set.
987- </remarks>
988- </member>
989- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossyEvaluator">
990- <summary>
991- The triggering event evaluator filters discarded events.
992- </summary>
993- <remarks>
994- The object that is used to determine if an event that is discarded should
995- really be discarded or if it should be sent to the appenders.
996- This field can be <c>null</c>, which indicates that all discarded events will
997- be discarded.
998- </remarks>
999- </member>
1000- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_fixFlags">
1001- <summary>
1002- Value indicating which fields in the event should be fixed
1003- </summary>
1004- <remarks>
1005- By default all fields are fixed
1006- </remarks>
1007- </member>
1008- <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_eventMustBeFixed">
1009- <summary>
1010- The events delivered to the subclass must be fixed.
1011- </summary>
1012- </member>
1013- <member name="P:log4net.Appender.BufferingAppenderSkeleton.Lossy">
1014- <summary>
1015- Gets or sets a value that indicates whether the appender is lossy.
1016- </summary>
1017227 <value>
1018- <c>true</c> if the appender is lossy, otherwise <c>false</c>. The default is <c>false</c>.
228+ <c>true</c> if transactions should be used to insert logging events in
229+ the database, otherwise <c>false</c>. The default value is <c>true</c>.
1019230 </value>
1020231 <remarks>
1021232 <para>
1022- This appender uses a buffer to store logging events before
1023- delivering them. A triggering event causes the whole buffer
1024- to be send to the remote sink. If the buffer overruns before
1025- a triggering event then logging events could be lost. Set
1026- <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> to <c>false</c> to prevent logging events
1027- from being lost.
233+ Gets or sets a value that indicates whether transactions should be used
234+ to insert logging events in the database.
1028235 </para>
1029- <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
1030- <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
1031- </remarks>
1032- </member>
1033- <member name="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize">
1034- <summary>
1035- Gets or sets the size of the cyclic buffer used to hold the
1036- logging events.
1037- </summary>
1038- <value>
1039- The size of the cyclic buffer used to hold the logging events.
1040- </value>
1041- <remarks>
1042236 <para>
1043- The <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option takes a positive integer
1044- representing the maximum number of logging events to collect in
1045- a cyclic buffer. When the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is reached,
1046- oldest events are deleted as new events are added to the
1047- buffer. By default the size of the cyclic buffer is 512 events.
237+ When set a single transaction will be used to insert the buffered events
238+ into the database. Otherwise each event will be inserted without using
239+ an explicit transaction.
1048240 </para>
1049- <para>
1050- If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to a value less than
1051- or equal to 1 then no buffering will occur. The logging event
1052- will be delivered synchronously (depending on the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>
1053- and <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> properties). Otherwise the event will
1054- be buffered.
1055- </para>
1056241 </remarks>
1057242 </member>
1058- <member name="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator">
243+ <member name="P:log4net.Appender.AdoNetAppender.SecurityContext">
1059244 <summary>
1060- Gets or sets the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the
1061- buffer to be sent immediately.
245+ Gets or sets the <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
1062246 </summary>
1063247 <value>
1064- The <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the buffer to be
1065- sent immediately.
248+ The <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
1066249 </value>
1067250 <remarks>
1068251 <para>
1069- The evaluator will be called for each event that is appended to this
1070- appender. If the evaluator triggers then the current buffer will
1071- immediately be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
252+ Unless a <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> specified here for this appender
253+ the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
254+ security context to use. The default behavior is to use the security context
255+ of the current thread.
1072256 </para>
1073- <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
1074- <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
1075257 </remarks>
1076258 </member>
1077- <member name="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator">
259+ <member name="P:log4net.Appender.AdoNetAppender.ReconnectOnError">
1078260 <summary>
1079- Gets or sets the value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
261+ Should this appender try to reconnect to the database on error.
1080262 </summary>
1081263 <value>
1082- The value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
264+ <c>true</c> if the appender should try to reconnect to the database after an
265+ error has occurred, otherwise <c>false</c>. The default value is <c>false</c>,
266+ i.e. not to try to reconnect.
1083267 </value>
1084268 <remarks>
1085269 <para>
1086- The evaluator will be called for each event that is discarded from this
1087- appender. If the evaluator triggers then the current buffer will immediately
1088- be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
270+ The default behaviour is for the appender not to try to reconnect to the
271+ database if an error occurs. Subsequent logging events are discarded.
1089272 </para>
1090- </remarks>
1091- </member>
1092- <member name="P:log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData">
1093- <summary>
1094- Gets or sets a value indicating if only part of the logging event data
1095- should be fixed.
1096- </summary>
1097- <value>
1098- <c>true</c> if the appender should only fix part of the logging event
1099- data, otherwise <c>false</c>. The default is <c>false</c>.
1100- </value>
1101- <remarks>
1102273 <para>
1103- Setting this property to <c>true</c> will cause only part of the
1104- event data to be fixed and serialized. This will improve performance.
274+ To force the appender to attempt to reconnect to the database set this
275+ property to <c>true</c>.
1105276 </para>
1106- <para>
1107- See <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/> for more information.
1108- </para>
277+ <note>
278+ When the appender attempts to connect to the database there may be a
279+ delay of up to the connection timeout specified in the connection string.
280+ This delay will block the calling application's thread.
281+ Until the connection can be reestablished this potential delay may occur multiple times.
282+ </note>
1109283 </remarks>
1110284 </member>
1111- <member name="P:log4net.Appender.BufferingAppenderSkeleton.Fix">
285+ <member name="P:log4net.Appender.AdoNetAppender.Connection">
1112286 <summary>
1113- Gets or sets a the fields that will be fixed in the event
287+ Gets or sets the underlying <see cref="T:System.Data.IDbConnection" />.
1114288 </summary>
1115289 <value>
1116- The event fields that will be fixed before the event is buffered
290+ The underlying <see cref="T:System.Data.IDbConnection" />.
1117291 </value>
1118292 <remarks>
1119- <para>
1120- The logging event needs to have certain thread specific values
1121- captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
1122- for details.
1123- </para>
293+ <see cref="T:log4net.Appender.AdoNetAppender" /> creates a <see cref="T:System.Data.IDbConnection" /> to insert
294+ logging events into a database. Classes deriving from <see cref="T:log4net.Appender.AdoNetAppender" />
295+ can use this property to get or set this <see cref="T:System.Data.IDbConnection" />. Use the
296+ underlying <see cref="T:System.Data.IDbConnection" /> returned from <see cref="P:log4net.Appender.AdoNetAppender.Connection" /> if
297+ you require access beyond that which <see cref="T:log4net.Appender.AdoNetAppender" /> provides.
1124298 </remarks>
1125- <seealso cref="P:log4net.Core.LoggingEvent.Fix"/>
1126299 </member>
1127- <member name="M:log4net.Appender.AdoNetAppender.#ctor">
1128- <summary>
1129- Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppender"/> class.
1130- </summary>
1131- <remarks>
1132- Public default constructor to initialize a new instance of this class.
1133- </remarks>
1134- </member>
1135300 <member name="M:log4net.Appender.AdoNetAppender.ActivateOptions">
1136301 <summary>
1137302 Initialize the appender based on the options set
@@ -1249,24 +414,11 @@
1249414 </remarks>
1250415 <returns>The <see cref="T:System.Type"/> of the ADO.NET provider</returns>
1251416 </member>
1252- <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseCommand">
1253- <summary>
1254- Prepares the database command and initialize the parameters.
1255- </summary>
1256- </member>
1257417 <member name="M:log4net.Appender.AdoNetAppender.InitializeDatabaseConnection">
1258418 <summary>
1259419 Connects to the database.
1260420 </summary>
1261421 </member>
1262- <member name="M:log4net.Appender.AdoNetAppender.DisposeCommand(System.Boolean)">
1263- <summary>
1264- Cleanup the existing command.
1265- </summary>
1266- <param name="ignoreException">
1267- If true, a message will be written using LogLog.Warn if an exception is encountered when calling Dispose.
1268- </param>
1269- </member>
1270422 <member name="M:log4net.Appender.AdoNetAppender.DiposeConnection">
1271423 <summary>
1272424 Cleanup the existing connection.
@@ -1275,17 +427,6 @@
1275427 Calls the IDbConnection's <see cref="M:System.Data.IDbConnection.Close"/> method.
1276428 </remarks>
1277429 </member>
1278- <member name="F:log4net.Appender.AdoNetAppender.m_usePreparedCommand">
1279- <summary>
1280- Flag to indicate if we are using a command object
1281- </summary>
1282- <remarks>
1283- <para>
1284- Set to <c>true</c> when the appender is to use a prepared
1285- statement or stored procedure to insert into the database.
1286- </para>
1287- </remarks>
1288- </member>
1289430 <member name="F:log4net.Appender.AdoNetAppender.m_parameters">
1290431 <summary>
1291432 The list of <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> objects.
@@ -1303,15 +444,10 @@
1303444 </member>
1304445 <member name="F:log4net.Appender.AdoNetAppender.m_dbConnection">
1305446 <summary>
1306- The <see cref="T:System.Data.IDbConnection"/> that will be used
447+ The <see cref="T:System.Data.IDbConnection" /> that will be used
1307448 to insert logging events into a database.
1308449 </summary>
1309450 </member>
1310- <member name="F:log4net.Appender.AdoNetAppender.m_dbCommand">
1311- <summary>
1312- The database command.
1313- </summary>
1314- </member>
1315451 <member name="F:log4net.Appender.AdoNetAppender.m_connectionString">
1316452 <summary>
1317453 Database connection string.
@@ -1349,7 +485,7 @@
1349485 </member>
1350486 <member name="F:log4net.Appender.AdoNetAppender.m_reconnectOnError">
1351487 <summary>
1352- Indicates whether to use transactions when writing to the database.
488+ Indicates whether to reconnect when a connection is lost.
1353489 </summary>
1354490 </member>
1355491 <member name="F:log4net.Appender.AdoNetAppender.declaringType">
@@ -1361,218 +497,143 @@
1361497 log message.
1362498 </remarks>
1363499 </member>
1364- <member name="P:log4net.Appender.AdoNetAppender.ConnectionString">
500+ <member name="T:log4net.Appender.AdoNetAppenderParameter">
1365501 <summary>
1366- Gets or sets the database connection string that is used to connect to
1367- the database.
502+ Parameter type used by the <see cref="T:log4net.Appender.AdoNetAppender"/>.
1368503 </summary>
1369- <value>
1370- The database connection string used to connect to the database.
1371- </value>
1372504 <remarks>
1373505 <para>
1374- The connections string is specific to the connection type.
1375- See <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/> for more information.
506+ This class provides the basic database parameter properties
507+ as defined by the <see cref="T:System.Data.IDbDataParameter"/> interface.
1376508 </para>
509+ <para>This type can be subclassed to provide database specific
510+ functionality. The two methods that are called externally are
511+ <see cref="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)"/> and <see cref="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)"/>.
512+ </para>
1377513 </remarks>
1378- <example>Connection string for MS Access via ODBC:
1379- <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>
1380- </example>
1381- <example>Another connection string for MS Access via ODBC:
1382- <code>"Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"</code>
1383- </example>
1384- <example>Connection string for MS Access via OLE DB:
1385- <code>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"</code>
1386- </example>
1387514 </member>
1388- <member name="P:log4net.Appender.AdoNetAppender.AppSettingsKey">
515+ <member name="M:log4net.Appender.AdoNetAppenderParameter.#ctor">
1389516 <summary>
1390- The appSettings key from App.Config that contains the connection string.
517+ Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppenderParameter" /> class.
1391518 </summary>
1392- </member>
1393- <member name="P:log4net.Appender.AdoNetAppender.ConnectionStringName">
1394- <summary>
1395- The connectionStrings key from App.Config that contains the connection string.
1396- </summary>
1397519 <remarks>
1398- This property requires at least .NET 2.0.
520+ Default constructor for the AdoNetAppenderParameter class.
1399521 </remarks>
1400522 </member>
1401- <member name="P:log4net.Appender.AdoNetAppender.ConnectionType">
523+ <member name="P:log4net.Appender.AdoNetAppenderParameter.ParameterName">
1402524 <summary>
1403- Gets or sets the type name of the <see cref="T:System.Data.IDbConnection"/> connection
1404- that should be created.
525+ Gets or sets the name of this parameter.
1405526 </summary>
1406527 <value>
1407- The type name of the <see cref="T:System.Data.IDbConnection"/> connection.
528+ The name of this parameter.
1408529 </value>
1409530 <remarks>
1410531 <para>
1411- The type name of the ADO.NET provider to use.
532+ The name of this parameter. The parameter name
533+ must match up to a named parameter to the SQL stored procedure
534+ or prepared statement.
1412535 </para>
1413- <para>
1414- The default is to use the OLE DB provider.
1415- </para>
1416536 </remarks>
1417- <example>Use the OLE DB Provider. This is the default value.
1418- <code>System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
1419- </example>
1420- <example>Use the MS SQL Server Provider.
1421- <code>System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
1422- </example>
1423- <example>Use the ODBC Provider.
1424- <code>Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral</code>
1425- This is an optional package that you can download from
1426- <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
1427- search for <b>ODBC .NET Data Provider</b>.
1428- </example>
1429- <example>Use the Oracle Provider.
1430- <code>System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</code>
1431- This is an optional package that you can download from
1432- <a href="http://msdn.microsoft.com/downloads">http://msdn.microsoft.com/downloads</a>
1433- search for <b>.NET Managed Provider for Oracle</b>.
1434- </example>
1435537 </member>
1436- <member name="P:log4net.Appender.AdoNetAppender.CommandText">
538+ <member name="P:log4net.Appender.AdoNetAppenderParameter.DbType">
1437539 <summary>
1438- Gets or sets the command text that is used to insert logging events
1439- into the database.
540+ Gets or sets the database type for this parameter.
1440541 </summary>
1441542 <value>
1442- The command text used to insert logging events into the database.
543+ The database type for this parameter.
1443544 </value>
1444545 <remarks>
1445546 <para>
1446- Either the text of the prepared statement or the
1447- name of the stored procedure to execute to write into
1448- the database.
547+ The database type for this parameter. This property should
548+ be set to the database type from the <see cref="P:log4net.Appender.AdoNetAppenderParameter.DbType"/>
549+ enumeration. See <see cref="P:System.Data.IDataParameter.DbType"/>.
1449550 </para>
1450551 <para>
1451- The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property determines if
1452- this text is a prepared statement or a stored procedure.
552+ This property is optional. If not specified the ADO.NET provider
553+ will attempt to infer the type from the value.
1453554 </para>
1454555 </remarks>
556+ <seealso cref="P:System.Data.IDataParameter.DbType" />
1455557 </member>
1456- <member name="P:log4net.Appender.AdoNetAppender.CommandType">
558+ <member name="P:log4net.Appender.AdoNetAppenderParameter.Precision">
1457559 <summary>
1458- Gets or sets the command type to execute.
560+ Gets or sets the precision for this parameter.
1459561 </summary>
1460562 <value>
1461- The command type to execute.
563+ The precision for this parameter.
1462564 </value>
1463565 <remarks>
1464566 <para>
1465- This value may be either <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify
1466- that the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> is a prepared statement to execute,
1467- or <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify that the
1468- <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property is the name of a stored procedure
1469- to execute.
567+ The maximum number of digits used to represent the Value.
1470568 </para>
1471569 <para>
1472- The default value is <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>).
570+ This property is optional. If not specified the ADO.NET provider
571+ will attempt to infer the precision from the value.
1473572 </para>
1474573 </remarks>
574+ <seealso cref="P:System.Data.IDbDataParameter.Precision" />
1475575 </member>
1476- <member name="P:log4net.Appender.AdoNetAppender.UseTransactions">
576+ <member name="P:log4net.Appender.AdoNetAppenderParameter.Scale">
1477577 <summary>
1478- Should transactions be used to insert logging events in the database.
578+ Gets or sets the scale for this parameter.
1479579 </summary>
1480580 <value>
1481- <c>true</c> if transactions should be used to insert logging events in
1482- the database, otherwise <c>false</c>. The default value is <c>true</c>.
581+ The scale for this parameter.
1483582 </value>
1484583 <remarks>
1485584 <para>
1486- Gets or sets a value that indicates whether transactions should be used
1487- to insert logging events in the database.
585+ The number of decimal places to which Value is resolved.
1488586 </para>
1489587 <para>
1490- When set a single transaction will be used to insert the buffered events
1491- into the database. Otherwise each event will be inserted without using
1492- an explicit transaction.
588+ This property is optional. If not specified the ADO.NET provider
589+ will attempt to infer the scale from the value.
1493590 </para>
1494591 </remarks>
592+ <seealso cref="P:System.Data.IDbDataParameter.Scale" />
1495593 </member>
1496- <member name="P:log4net.Appender.AdoNetAppender.SecurityContext">
594+ <member name="P:log4net.Appender.AdoNetAppenderParameter.Size">
1497595 <summary>
1498- Gets or sets the <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
596+ Gets or sets the size for this parameter.
1499597 </summary>
1500598 <value>
1501- The <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> used to call the NetSend method.
599+ The size for this parameter.
1502600 </value>
1503601 <remarks>
1504602 <para>
1505- Unless a <see cref="P:log4net.Appender.AdoNetAppender.SecurityContext"/> specified here for this appender
1506- the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
1507- security context to use. The default behavior is to use the security context
1508- of the current thread.
603+ The maximum size, in bytes, of the data within the column.
1509604 </para>
1510- </remarks>
1511- </member>
1512- <member name="P:log4net.Appender.AdoNetAppender.ReconnectOnError">
1513- <summary>
1514- Should this appender try to reconnect to the database on error.
1515- </summary>
1516- <value>
1517- <c>true</c> if the appender should try to reconnect to the database after an
1518- error has occurred, otherwise <c>false</c>. The default value is <c>false</c>,
1519- i.e. not to try to reconnect.
1520- </value>
1521- <remarks>
1522605 <para>
1523- The default behaviour is for the appender not to try to reconnect to the
1524- database if an error occurs. Subsequent logging events are discarded.
606+ This property is optional. If not specified the ADO.NET provider
607+ will attempt to infer the size from the value.
1525608 </para>
1526609 <para>
1527- To force the appender to attempt to reconnect to the database set this
1528- property to <c>true</c>.
610+ For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case.
1529611 </para>
1530- <note>
1531- When the appender attempts to connect to the database there may be a
1532- delay of up to the connection timeout specified in the connection string.
1533- This delay will block the calling application's thread.
1534- Until the connection can be reestablished this potential delay may occur multiple times.
1535- </note>
1536612 </remarks>
613+ <seealso cref="P:System.Data.IDbDataParameter.Size" />
1537614 </member>
1538- <member name="P:log4net.Appender.AdoNetAppender.Connection">
615+ <member name="P:log4net.Appender.AdoNetAppenderParameter.Layout">
1539616 <summary>
1540- Gets or sets the underlying <see cref="T:System.Data.IDbConnection"/>.
617+ Gets or sets the <see cref="T:log4net.Layout.IRawLayout"/> to use to
618+ render the logging event into an object for this
619+ parameter.
1541620 </summary>
1542621 <value>
1543- The underlying <see cref="T:System.Data.IDbConnection"/>.
622+ The <see cref="T:log4net.Layout.IRawLayout"/> used to render the
623+ logging event into an object for this parameter.
1544624 </value>
1545625 <remarks>
1546- <see cref="T:log4net.Appender.AdoNetAppender"/> creates a <see cref="T:System.Data.IDbConnection"/> to insert
1547- logging events into a database. Classes deriving from <see cref="T:log4net.Appender.AdoNetAppender"/>
1548- can use this property to get or set this <see cref="T:System.Data.IDbConnection"/>. Use the
1549- underlying <see cref="T:System.Data.IDbConnection"/> returned from <see cref="P:log4net.Appender.AdoNetAppender.Connection"/> if
1550- you require access beyond that which <see cref="T:log4net.Appender.AdoNetAppender"/> provides.
1551- </remarks>
1552- </member>
1553- <member name="T:log4net.Appender.AdoNetAppenderParameter">
1554- <summary>
1555- Parameter type used by the <see cref="T:log4net.Appender.AdoNetAppender"/>.
1556- </summary>
1557- <remarks>
1558626 <para>
1559- This class provides the basic database parameter properties
1560- as defined by the <see cref="T:System.Data.IDbDataParameter"/> interface.
627+ The <see cref="T:log4net.Layout.IRawLayout"/> that renders the value for this
628+ parameter.
1561629 </para>
1562- <para>This type can be subclassed to provide database specific
1563- functionality. The two methods that are called externally are
1564- <see cref="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)"/> and <see cref="M:log4net.Appender.AdoNetAppenderParameter.FormatValue(System.Data.IDbCommand,log4net.Core.LoggingEvent)"/>.
630+ <para>
631+ The <see cref="T:log4net.Layout.RawLayoutConverter"/> can be used to adapt
632+ any <see cref="T:log4net.Layout.ILayout"/> into a <see cref="T:log4net.Layout.IRawLayout"/>
633+ for use in the property.
1565634 </para>
1566635 </remarks>
1567636 </member>
1568- <member name="M:log4net.Appender.AdoNetAppenderParameter.#ctor">
1569- <summary>
1570- Initializes a new instance of the <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> class.
1571- </summary>
1572- <remarks>
1573- Default constructor for the AdoNetAppenderParameter class.
1574- </remarks>
1575- </member>
1576637 <member name="M:log4net.Appender.AdoNetAppenderParameter.Prepare(System.Data.IDbCommand)">
1577638 <summary>
1578639 Prepare the specified database command object.
@@ -1634,120 +695,6 @@
1634695 logging event into an object for this parameter.
1635696 </summary>
1636697 </member>
1637- <member name="P:log4net.Appender.AdoNetAppenderParameter.ParameterName">
1638- <summary>
1639- Gets or sets the name of this parameter.
1640- </summary>
1641- <value>
1642- The name of this parameter.
1643- </value>
1644- <remarks>
1645- <para>
1646- The name of this parameter. The parameter name
1647- must match up to a named parameter to the SQL stored procedure
1648- or prepared statement.
1649- </para>
1650- </remarks>
1651- </member>
1652- <member name="P:log4net.Appender.AdoNetAppenderParameter.DbType">
1653- <summary>
1654- Gets or sets the database type for this parameter.
1655- </summary>
1656- <value>
1657- The database type for this parameter.
1658- </value>
1659- <remarks>
1660- <para>
1661- The database type for this parameter. This property should
1662- be set to the database type from the <see cref="P:log4net.Appender.AdoNetAppenderParameter.DbType"/>
1663- enumeration. See <see cref="P:System.Data.IDataParameter.DbType"/>.
1664- </para>
1665- <para>
1666- This property is optional. If not specified the ADO.NET provider
1667- will attempt to infer the type from the value.
1668- </para>
1669- </remarks>
1670- <seealso cref="P:System.Data.IDataParameter.DbType"/>
1671- </member>
1672- <member name="P:log4net.Appender.AdoNetAppenderParameter.Precision">
1673- <summary>
1674- Gets or sets the precision for this parameter.
1675- </summary>
1676- <value>
1677- The precision for this parameter.
1678- </value>
1679- <remarks>
1680- <para>
1681- The maximum number of digits used to represent the Value.
1682- </para>
1683- <para>
1684- This property is optional. If not specified the ADO.NET provider
1685- will attempt to infer the precision from the value.
1686- </para>
1687- </remarks>
1688- <seealso cref="P:System.Data.IDbDataParameter.Precision"/>
1689- </member>
1690- <member name="P:log4net.Appender.AdoNetAppenderParameter.Scale">
1691- <summary>
1692- Gets or sets the scale for this parameter.
1693- </summary>
1694- <value>
1695- The scale for this parameter.
1696- </value>
1697- <remarks>
1698- <para>
1699- The number of decimal places to which Value is resolved.
1700- </para>
1701- <para>
1702- This property is optional. If not specified the ADO.NET provider
1703- will attempt to infer the scale from the value.
1704- </para>
1705- </remarks>
1706- <seealso cref="P:System.Data.IDbDataParameter.Scale"/>
1707- </member>
1708- <member name="P:log4net.Appender.AdoNetAppenderParameter.Size">
1709- <summary>
1710- Gets or sets the size for this parameter.
1711- </summary>
1712- <value>
1713- The size for this parameter.
1714- </value>
1715- <remarks>
1716- <para>
1717- The maximum size, in bytes, of the data within the column.
1718- </para>
1719- <para>
1720- This property is optional. If not specified the ADO.NET provider
1721- will attempt to infer the size from the value.
1722- </para>
1723- <para>
1724- For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case.
1725- </para>
1726- </remarks>
1727- <seealso cref="P:System.Data.IDbDataParameter.Size"/>
1728- </member>
1729- <member name="P:log4net.Appender.AdoNetAppenderParameter.Layout">
1730- <summary>
1731- Gets or sets the <see cref="T:log4net.Layout.IRawLayout"/> to use to
1732- render the logging event into an object for this
1733- parameter.
1734- </summary>
1735- <value>
1736- The <see cref="T:log4net.Layout.IRawLayout"/> used to render the
1737- logging event into an object for this parameter.
1738- </value>
1739- <remarks>
1740- <para>
1741- The <see cref="T:log4net.Layout.IRawLayout"/> that renders the value for this
1742- parameter.
1743- </para>
1744- <para>
1745- The <see cref="T:log4net.Layout.RawLayoutConverter"/> can be used to adapt
1746- any <see cref="T:log4net.Layout.ILayout"/> into a <see cref="T:log4net.Layout.IRawLayout"/>
1747- for use in the property.
1748- </para>
1749- </remarks>
1750- </member>
1751698 <member name="T:log4net.Appender.AnsiColorTerminalAppender">
1752699 <summary>
1753700 Appends logging events to the terminal using ANSI color escape sequences.
@@ -1781,14 +728,14 @@
1781728 </para>
1782729 <code lang="XML" escaped="true">
1783730 <mapping>
1784- <level value="ERROR"/>
1785- <foreColor value="White"/>
1786- <backColor value="Red"/>
1787- <attributes value="Bright,Underscore"/>
731+ <level value="ERROR" />
732+ <foreColor value="White" />
733+ <backColor value="Red" />
734+ <attributes value="Bright,Underscore" />
1788735 </mapping>
1789736 <mapping>
1790- <level value="DEBUG"/>
1791- <backColor value="Green"/>
737+ <level value="DEBUG" />
738+ <backColor value="Green" />
1792739 </mapping>
1793740 </code>
1794741 <para>
@@ -1824,117 +771,6 @@
1824771 <author>Patrick Wagstrom</author>
1825772 <author>Nicko Cadell</author>
1826773 </member>
1827- <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleOut">
1828- <summary>
1829- The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
1830- standard output stream.
1831- </summary>
1832- <remarks>
1833- <para>
1834- The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
1835- standard output stream.
1836- </para>
1837- </remarks>
1838- </member>
1839- <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleError">
1840- <summary>
1841- The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
1842- standard error output stream.
1843- </summary>
1844- <remarks>
1845- <para>
1846- The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
1847- standard error output stream.
1848- </para>
1849- </remarks>
1850- </member>
1851- <member name="F:log4net.Appender.AnsiColorTerminalAppender.PostEventCodes">
1852- <summary>
1853- Ansi code to reset terminal
1854- </summary>
1855- </member>
1856- <member name="M:log4net.Appender.AnsiColorTerminalAppender.#ctor">
1857- <summary>
1858- Initializes a new instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class.
1859- </summary>
1860- <remarks>
1861- The instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender"/> class is set up to write
1862- to the standard output stream.
1863- </remarks>
1864- </member>
1865- <member name="M:log4net.Appender.AnsiColorTerminalAppender.AddMapping(log4net.Appender.AnsiColorTerminalAppender.LevelColors)">
1866- <summary>
1867- Add a mapping of level to color
1868- </summary>
1869- <param name="mapping">The mapping to add</param>
1870- <remarks>
1871- <para>
1872- Add a <see cref="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors"/> mapping to this appender.
1873- Each mapping defines the foreground and background colours
1874- for a level.
1875- </para>
1876- </remarks>
1877- </member>
1878- <member name="M:log4net.Appender.AnsiColorTerminalAppender.Append(log4net.Core.LoggingEvent)">
1879- <summary>
1880- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
1881- </summary>
1882- <param name="loggingEvent">The event to log.</param>
1883- <remarks>
1884- <para>
1885- Writes the event to the console.
1886- </para>
1887- <para>
1888- The format of the output will depend on the appender's layout.
1889- </para>
1890- </remarks>
1891- </member>
1892- <member name="M:log4net.Appender.AnsiColorTerminalAppender.ActivateOptions">
1893- <summary>
1894- Initialize the options for this appender
1895- </summary>
1896- <remarks>
1897- <para>
1898- Initialize the level to color mappings set on this appender.
1899- </para>
1900- </remarks>
1901- </member>
1902- <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_writeToErrorStream">
1903- <summary>
1904- Flag to write output to the error stream rather than the standard output stream
1905- </summary>
1906- </member>
1907- <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_levelMapping">
1908- <summary>
1909- Mapping from level object to color value
1910- </summary>
1911- </member>
1912- <member name="P:log4net.Appender.AnsiColorTerminalAppender.Target">
1913- <summary>
1914- Target is the value of the console output stream.
1915- </summary>
1916- <value>
1917- Target is the value of the console output stream.
1918- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
1919- </value>
1920- <remarks>
1921- <para>
1922- Target is the value of the console output stream.
1923- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
1924- </para>
1925- </remarks>
1926- </member>
1927- <member name="P:log4net.Appender.AnsiColorTerminalAppender.RequiresLayout">
1928- <summary>
1929- This appender requires a <see cref="N:log4net.Layout"/> to be set.
1930- </summary>
1931- <value><c>true</c></value>
1932- <remarks>
1933- <para>
1934- This appender requires a <see cref="N:log4net.Layout"/> to be set.
1935- </para>
1936- </remarks>
1937- </member>
1938774 <member name="T:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes">
1939775 <summary>
1940776 The enum of possible display attributes
@@ -1945,7 +781,7 @@
1945781 form the ANSI color attributes.
1946782 </para>
1947783 </remarks>
1948- <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
784+ <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender" />
1949785 </member>
1950786 <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiAttributes.Bright">
1951787 <summary>
@@ -2000,7 +836,7 @@
2000836 The output can be in one for the following ANSI colors.
2001837 </para>
2002838 </remarks>
2003- <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender"/>
839+ <seealso cref="T:log4net.Appender.AnsiColorTerminalAppender" />
2004840 </member>
2005841 <member name="F:log4net.Appender.AnsiColorTerminalAppender.AnsiColor.Black">
2006842 <summary>
@@ -2042,74 +878,128 @@
2042878 color is white
2043879 </summary>
2044880 </member>
2045- <member name="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors">
881+ <member name="M:log4net.Appender.AnsiColorTerminalAppender.#ctor">
2046882 <summary>
2047- A class to act as a mapping between the level that a logging call is made at and
2048- the color it should be displayed as.
883+ Initializes a new instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender" /> class.
2049884 </summary>
2050885 <remarks>
886+ The instance of the <see cref="T:log4net.Appender.AnsiColorTerminalAppender" /> class is set up to write
887+ to the standard output stream.
888+ </remarks>
889+ </member>
890+ <member name="P:log4net.Appender.AnsiColorTerminalAppender.Target">
891+ <summary>
892+ Target is the value of the console output stream.
893+ </summary>
894+ <value>
895+ Target is the value of the console output stream.
896+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
897+ </value>
898+ <remarks>
2051899 <para>
2052- Defines the mapping between a level and the color it should be displayed in.
900+ Target is the value of the console output stream.
901+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2053902 </para>
2054903 </remarks>
2055904 </member>
2056- <member name="T:log4net.Util.LevelMappingEntry">
905+ <member name="M:log4net.Appender.AnsiColorTerminalAppender.AddMapping(log4net.Appender.AnsiColorTerminalAppender.LevelColors)">
2057906 <summary>
2058- An entry in the <see cref="T:log4net.Util.LevelMapping"/>
907+ Add a mapping of level to color
2059908 </summary>
909+ <param name="mapping">The mapping to add</param>
2060910 <remarks>
2061911 <para>
2062- This is an abstract base class for types that are stored in the
2063- <see cref="T:log4net.Util.LevelMapping"/> object.
912+ Add a <see cref="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors"/> mapping to this appender.
913+ Each mapping defines the foreground and background colours
914+ for a level.
2064915 </para>
2065916 </remarks>
2066- <author>Nicko Cadell</author>
2067917 </member>
2068- <member name="M:log4net.Util.LevelMappingEntry.#ctor">
918+ <member name="M:log4net.Appender.AnsiColorTerminalAppender.Append(log4net.Core.LoggingEvent)">
2069919 <summary>
2070- Default protected constructor
920+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
2071921 </summary>
922+ <param name="loggingEvent">The event to log.</param>
2072923 <remarks>
2073924 <para>
2074- Default protected constructor
925+ Writes the event to the console.
2075926 </para>
927+ <para>
928+ The format of the output will depend on the appender's layout.
929+ </para>
2076930 </remarks>
2077931 </member>
2078- <member name="M:log4net.Util.LevelMappingEntry.ActivateOptions">
932+ <member name="P:log4net.Appender.AnsiColorTerminalAppender.RequiresLayout">
2079933 <summary>
2080- Initialize any options defined on this entry
934+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
2081935 </summary>
936+ <value><c>true</c></value>
2082937 <remarks>
2083938 <para>
2084- Should be overridden by any classes that need to initialise based on their options
939+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
2085940 </para>
2086941 </remarks>
2087942 </member>
2088- <member name="P:log4net.Util.LevelMappingEntry.Level">
943+ <member name="M:log4net.Appender.AnsiColorTerminalAppender.ActivateOptions">
2089944 <summary>
2090- The level that is the key for this mapping
945+ Initialize the options for this appender
2091946 </summary>
2092- <value>
2093- The <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this mapping
2094- </value>
2095947 <remarks>
2096948 <para>
2097- Get or set the <see cref="P:log4net.Util.LevelMappingEntry.Level"/> that is the key for this
2098- mapping subclass.
949+ Initialize the level to color mappings set on this appender.
2099950 </para>
2100951 </remarks>
2101952 </member>
2102- <member name="M:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ActivateOptions">
953+ <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleOut">
2103954 <summary>
2104- Initialize the options for the object
955+ The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
956+ standard output stream.
2105957 </summary>
2106958 <remarks>
2107959 <para>
2108- Combine the <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> together
2109- and append the attributes.
960+ The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
961+ standard output stream.
2110962 </para>
2111963 </remarks>
2112964 </member>
965+ <member name="F:log4net.Appender.AnsiColorTerminalAppender.ConsoleError">
966+ <summary>
967+ The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
968+ standard error output stream.
969+ </summary>
970+ <remarks>
971+ <para>
972+ The <see cref="P:log4net.Appender.AnsiColorTerminalAppender.Target"/> to use when writing to the Console
973+ standard error output stream.
974+ </para>
975+ </remarks>
976+ </member>
977+ <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_writeToErrorStream">
978+ <summary>
979+ Flag to write output to the error stream rather than the standard output stream
980+ </summary>
981+ </member>
982+ <member name="F:log4net.Appender.AnsiColorTerminalAppender.m_levelMapping">
983+ <summary>
984+ Mapping from level object to color value
985+ </summary>
986+ </member>
987+ <member name="F:log4net.Appender.AnsiColorTerminalAppender.PostEventCodes">
988+ <summary>
989+ Ansi code to reset terminal
990+ </summary>
991+ </member>
992+ <member name="T:log4net.Appender.AnsiColorTerminalAppender.LevelColors">
993+ <summary>
994+ A class to act as a mapping between the level that a logging call is made at and
995+ the color it should be displayed as.
996+ </summary>
997+ <remarks>
998+ <para>
999+ Defines the mapping between a level and the color it should be displayed in.
1000+ </para>
1001+ </remarks>
1002+ </member>
21131003 <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor">
21141004 <summary>
21151005 The mapped foreground color for the specified level
@@ -2143,6 +1033,17 @@
21431033 </para>
21441034 </remarks>
21451035 </member>
1036+ <member name="M:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ActivateOptions">
1037+ <summary>
1038+ Initialize the options for the object
1039+ </summary>
1040+ <remarks>
1041+ <para>
1042+ Combine the <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> together
1043+ and append the attributes.
1044+ </para>
1045+ </remarks>
1046+ </member>
21461047 <member name="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.CombinedColor">
21471048 <summary>
21481049 The combined <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.ForeColor"/>, <see cref="P:log4net.Appender.AnsiColorTerminalAppender.LevelColors.BackColor"/> and
@@ -2155,6 +1056,34 @@
21551056 </summary>
21561057 <author>Nicko Cadell</author>
21571058 </member>
1059+ <member name="T:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator">
1060+ <summary>
1061+ Supports type-safe iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
1062+ </summary>
1063+ <exclude/>
1064+ </member>
1065+ <member name="P:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Current">
1066+ <summary>
1067+ Gets the current element in the collection.
1068+ </summary>
1069+ </member>
1070+ <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.MoveNext">
1071+ <summary>
1072+ Advances the enumerator to the next element in the collection.
1073+ </summary>
1074+ <returns>
1075+ <c>true</c> if the enumerator was successfully advanced to the next element;
1076+ <c>false</c> if the enumerator has passed the end of the collection.
1077+ </returns>
1078+ <exception cref="T:System.InvalidOperationException">
1079+ The collection was modified after the enumerator was created.
1080+ </exception>
1081+ </member>
1082+ <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Reset">
1083+ <summary>
1084+ Sets the enumerator to its initial position, before the first element in the collection.
1085+ </summary>
1086+ </member>
21581087 <member name="M:log4net.Appender.AppenderCollection.ReadOnly(log4net.Appender.AppenderCollection)">
21591088 <summary>
21601089 Creates a read-only wrapper for a <c>AppenderCollection</c> instance.
@@ -2205,6 +1134,18 @@
22051134 </summary>
22061135 <param name="col">The <see cref="T:log4net.Appender.IAppender"/> collection whose elements are copied to the new list.</param>
22071136 </member>
1137+ <member name="T:log4net.Appender.AppenderCollection.Tag">
1138+ <summary>
1139+ Type visible only to our subclasses
1140+ Used to access protected constructor
1141+ </summary>
1142+ <exclude/>
1143+ </member>
1144+ <member name="F:log4net.Appender.AppenderCollection.Tag.Default">
1145+ <summary>
1146+ A value
1147+ </summary>
1148+ </member>
22081149 <member name="M:log4net.Appender.AppenderCollection.#ctor(log4net.Appender.AppenderCollection.Tag)">
22091150 <summary>
22101151 Allow subclasses to avoid our default constructors
@@ -2212,6 +1153,11 @@
22121153 <param name="tag"></param>
22131154 <exclude/>
22141155 </member>
1156+ <member name="P:log4net.Appender.AppenderCollection.Count">
1157+ <summary>
1158+ Gets the number of elements actually contained in the <c>AppenderCollection</c>.
1159+ </summary>
1160+ </member>
22151161 <member name="M:log4net.Appender.AppenderCollection.CopyTo(log4net.Appender.IAppender[])">
22161162 <summary>
22171163 Copies the entire <c>AppenderCollection</c> to a one-dimensional
@@ -2227,6 +1173,28 @@
22271173 <param name="array">The one-dimensional <see cref="T:log4net.Appender.IAppender"/> array to copy to.</param>
22281174 <param name="start">The zero-based index in <paramref name="array"/> at which copying begins.</param>
22291175 </member>
1176+ <member name="P:log4net.Appender.AppenderCollection.IsSynchronized">
1177+ <summary>
1178+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
1179+ </summary>
1180+ <returns>false, because the backing type is an array, which is never thread-safe.</returns>
1181+ </member>
1182+ <member name="P:log4net.Appender.AppenderCollection.SyncRoot">
1183+ <summary>
1184+ Gets an object that can be used to synchronize access to the collection.
1185+ </summary>
1186+ </member>
1187+ <member name="P:log4net.Appender.AppenderCollection.Item(System.Int32)">
1188+ <summary>
1189+ Gets or sets the <see cref="T:log4net.Appender.IAppender"/> at the specified index.
1190+ </summary>
1191+ <param name="index">The zero-based index of the element to get or set.</param>
1192+ <exception cref="T:System.ArgumentOutOfRangeException">
1193+ <para><paramref name="index"/> is less than zero</para>
1194+ <para>-or-</para>
1195+ <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
1196+ </exception>
1197+ </member>
22301198 <member name="M:log4net.Appender.AppenderCollection.Add(log4net.Appender.IAppender)">
22311199 <summary>
22321200 Adds a <see cref="T:log4net.Appender.IAppender"/> to the end of the <c>AppenderCollection</c>.
@@ -2295,6 +1263,18 @@
22951263 <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
22961264 </exception>
22971265 </member>
1266+ <member name="P:log4net.Appender.AppenderCollection.IsFixedSize">
1267+ <summary>
1268+ Gets a value indicating whether the collection has a fixed size.
1269+ </summary>
1270+ <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
1271+ </member>
1272+ <member name="P:log4net.Appender.AppenderCollection.IsReadOnly">
1273+ <summary>
1274+ Gets a value indicating whether the IList is read-only.
1275+ </summary>
1276+ <value>true if the collection is read-only; otherwise, false. The default is false</value>
1277+ </member>
22981278 <member name="M:log4net.Appender.AppenderCollection.GetEnumerator">
22991279 <summary>
23001280 Returns an enumerator that can iterate through the <c>AppenderCollection</c>.
@@ -2301,6 +1281,11 @@
23011281 </summary>
23021282 <returns>An <see cref="T:log4net.Appender.AppenderCollection.Enumerator"/> for the entire <c>AppenderCollection</c>.</returns>
23031283 </member>
1284+ <member name="P:log4net.Appender.AppenderCollection.Capacity">
1285+ <summary>
1286+ Gets or sets the number of elements the <c>AppenderCollection</c> can contain.
1287+ </summary>
1288+ </member>
23041289 <member name="M:log4net.Appender.AppenderCollection.AddRange(log4net.Appender.AppenderCollection)">
23051290 <summary>
23061291 Adds the elements of another <c>AppenderCollection</c> to the current <c>AppenderCollection</c>.
@@ -2347,127 +1332,592 @@
23471332 <para><paramref name="i"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
23481333 </exception>
23491334 </member>
2350- <member name="P:log4net.Appender.AppenderCollection.Count">
1335+ <member name="T:log4net.Appender.AppenderCollection.Enumerator">
23511336 <summary>
2352- Gets the number of elements actually contained in the <c>AppenderCollection</c>.
1337+ Supports simple iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
23531338 </summary>
1339+ <exclude/>
23541340 </member>
2355- <member name="P:log4net.Appender.AppenderCollection.IsSynchronized">
1341+ <member name="M:log4net.Appender.AppenderCollection.Enumerator.#ctor(log4net.Appender.AppenderCollection)">
23561342 <summary>
2357- Gets a value indicating whether access to the collection is synchronized (thread-safe).
1343+ Initializes a new instance of the <c>Enumerator</c> class.
23581344 </summary>
2359- <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
1345+ <param name="tc"></param>
23601346 </member>
2361- <member name="P:log4net.Appender.AppenderCollection.SyncRoot">
1347+ <member name="P:log4net.Appender.AppenderCollection.Enumerator.Current">
23621348 <summary>
2363- Gets an object that can be used to synchronize access to the collection.
1349+ Gets the current element in the collection.
23641350 </summary>
23651351 </member>
2366- <member name="P:log4net.Appender.AppenderCollection.Item(System.Int32)">
1352+ <member name="M:log4net.Appender.AppenderCollection.Enumerator.MoveNext">
23671353 <summary>
2368- Gets or sets the <see cref="T:log4net.Appender.IAppender"/> at the specified index.
1354+ Advances the enumerator to the next element in the collection.
23691355 </summary>
2370- <param name="index">The zero-based index of the element to get or set.</param>
2371- <exception cref="T:System.ArgumentOutOfRangeException">
2372- <para><paramref name="index"/> is less than zero</para>
2373- <para>-or-</para>
2374- <para><paramref name="index"/> is equal to or greater than <see cref="P:log4net.Appender.AppenderCollection.Count"/>.</para>
1356+ <returns>
1357+ <c>true</c> if the enumerator was successfully advanced to the next element;
1358+ <c>false</c> if the enumerator has passed the end of the collection.
1359+ </returns>
1360+ <exception cref="T:System.InvalidOperationException">
1361+ The collection was modified after the enumerator was created.
23751362 </exception>
23761363 </member>
2377- <member name="P:log4net.Appender.AppenderCollection.IsFixedSize">
1364+ <member name="M:log4net.Appender.AppenderCollection.Enumerator.Reset">
23781365 <summary>
2379- Gets a value indicating whether the collection has a fixed size.
1366+ Sets the enumerator to its initial position, before the first element in the collection.
23801367 </summary>
2381- <value>true if the collection has a fixed size; otherwise, false. The default is false</value>
23821368 </member>
2383- <member name="P:log4net.Appender.AppenderCollection.IsReadOnly">
1369+ <member name="T:log4net.Appender.AppenderCollection.ReadOnlyAppenderCollection">
1370+ <exclude/>
1371+ </member>
1372+ <member name="T:log4net.Appender.AppenderSkeleton">
23841373 <summary>
2385- Gets a value indicating whether the IList is read-only.
1374+ Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/>.
23861375 </summary>
2387- <value>true if the collection is read-only; otherwise, false. The default is false</value>
1376+ <remarks>
1377+ <para>
1378+ This class provides the code for common functionality, such
1379+ as support for threshold filtering and support for general filters.
1380+ </para>
1381+ <para>
1382+ Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
1383+ they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
1384+ be called after the appenders properties have been configured.
1385+ </para>
1386+ </remarks>
1387+ <author>Nicko Cadell</author>
1388+ <author>Gert Driesen</author>
23881389 </member>
2389- <member name="P:log4net.Appender.AppenderCollection.Capacity">
1390+ <member name="M:log4net.Appender.AppenderSkeleton.#ctor">
23901391 <summary>
2391- Gets or sets the number of elements the <c>AppenderCollection</c> can contain.
1392+ Default constructor
23921393 </summary>
1394+ <remarks>
1395+ <para>Empty default constructor</para>
1396+ </remarks>
23931397 </member>
2394- <member name="T:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator">
1398+ <member name="M:log4net.Appender.AppenderSkeleton.Finalize">
23951399 <summary>
2396- Supports type-safe iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
1400+ Finalizes this appender by calling the implementation's
1401+ <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
23971402 </summary>
2398- <exclude/>
1403+ <remarks>
1404+ <para>
1405+ If this appender has not been closed then the <c>Finalize</c> method
1406+ will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
1407+ </para>
1408+ </remarks>
23991409 </member>
2400- <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.MoveNext">
1410+ <member name="P:log4net.Appender.AppenderSkeleton.Threshold">
24011411 <summary>
2402- Advances the enumerator to the next element in the collection.
1412+ Gets or sets the threshold <see cref="T:log4net.Core.Level"/> of this appender.
24031413 </summary>
1414+ <value>
1415+ The threshold <see cref="T:log4net.Core.Level"/> of the appender.
1416+ </value>
1417+ <remarks>
1418+ <para>
1419+ All log events with lower level than the threshold level are ignored
1420+ by the appender.
1421+ </para>
1422+ <para>
1423+ In configuration files this option is specified by setting the
1424+ value of the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> option to a level
1425+ string, such as "DEBUG", "INFO" and so on.
1426+ </para>
1427+ </remarks>
1428+ </member>
1429+ <member name="P:log4net.Appender.AppenderSkeleton.ErrorHandler">
1430+ <summary>
1431+ Gets or sets the <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
1432+ </summary>
1433+ <value>The <see cref="T:log4net.Core.IErrorHandler"/> of the appender</value>
1434+ <remarks>
1435+ <para>
1436+ The <see cref="T:log4net.Appender.AppenderSkeleton"/> provides a default
1437+ implementation for the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> property.
1438+ </para>
1439+ </remarks>
1440+ </member>
1441+ <member name="P:log4net.Appender.AppenderSkeleton.FilterHead">
1442+ <summary>
1443+ The filter chain.
1444+ </summary>
1445+ <value>The head of the filter chain filter chain.</value>
1446+ <remarks>
1447+ <para>
1448+ Returns the head Filter. The Filters are organized in a linked list
1449+ and so all Filters on this Appender are available through the result.
1450+ </para>
1451+ </remarks>
1452+ </member>
1453+ <member name="P:log4net.Appender.AppenderSkeleton.Layout">
1454+ <summary>
1455+ Gets or sets the <see cref="T:log4net.Layout.ILayout"/> for this appender.
1456+ </summary>
1457+ <value>The layout of the appender.</value>
1458+ <remarks>
1459+ <para>
1460+ See <see cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/> for more information.
1461+ </para>
1462+ </remarks>
1463+ <seealso cref="P:log4net.Appender.AppenderSkeleton.RequiresLayout"/>
1464+ </member>
1465+ <member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
1466+ <summary>
1467+ Initialize the appender based on the options set
1468+ </summary>
1469+ <remarks>
1470+ <para>
1471+ This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
1472+ activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> method must
1473+ be called on this object after the configuration properties have
1474+ been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> is called this
1475+ object is in an undefined state and must not be used.
1476+ </para>
1477+ <para>
1478+ If any of the configuration properties are modified then
1479+ <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> must be called again.
1480+ </para>
1481+ </remarks>
1482+ </member>
1483+ <member name="P:log4net.Appender.AppenderSkeleton.Name">
1484+ <summary>
1485+ Gets or sets the name of this appender.
1486+ </summary>
1487+ <value>The name of the appender.</value>
1488+ <remarks>
1489+ <para>
1490+ The name uniquely identifies the appender.
1491+ </para>
1492+ </remarks>
1493+ </member>
1494+ <member name="M:log4net.Appender.AppenderSkeleton.Close">
1495+ <summary>
1496+ Closes the appender and release resources.
1497+ </summary>
1498+ <remarks>
1499+ <para>
1500+ Release any resources allocated within the appender such as file handles,
1501+ network connections, etc.
1502+ </para>
1503+ <para>
1504+ It is a programming error to append to a closed appender.
1505+ </para>
1506+ <para>
1507+ This method cannot be overridden by subclasses. This method
1508+ delegates the closing of the appender to the <see cref="M:log4net.Appender.AppenderSkeleton.OnClose"/>
1509+ method which must be overridden in the subclass.
1510+ </para>
1511+ </remarks>
1512+ </member>
1513+ <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)">
1514+ <summary>
1515+ Performs threshold checks and invokes filters before
1516+ delegating actual logging to the subclasses specific
1517+ <see cref="M:Append(LoggingEvent)"/> method.
1518+ </summary>
1519+ <param name="loggingEvent">The event to log.</param>
1520+ <remarks>
1521+ <para>
1522+ This method cannot be overridden by derived classes. A
1523+ derived class should override the <see cref="M:Append(LoggingEvent)"/> method
1524+ which is called by this method.
1525+ </para>
1526+ <para>
1527+ The implementation of this method is as follows:
1528+ </para>
1529+ <para>
1530+ <list type="bullet">
1531+ <item>
1532+ <description>
1533+ Checks that the severity of the <paramref name="loggingEvent"/>
1534+ is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
1535+ appender.</description>
1536+ </item>
1537+ <item>
1538+ <description>
1539+ Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
1540+ <paramref name="loggingEvent"/>.
1541+ </description>
1542+ </item>
1543+ <item>
1544+ <description>
1545+ Calls <see cref="M:PreAppendCheck()"/> and checks that
1546+ it returns <c>true</c>.</description>
1547+ </item>
1548+ </list>
1549+ </para>
1550+ <para>
1551+ If all of the above steps succeed then the <paramref name="loggingEvent"/>
1552+ will be passed to the abstract <see cref="M:Append(LoggingEvent)"/> method.
1553+ </para>
1554+ </remarks>
1555+ </member>
1556+ <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent[])">
1557+ <summary>
1558+ Performs threshold checks and invokes filters before
1559+ delegating actual logging to the subclasses specific
1560+ <see cref="M:Append(LoggingEvent[])"/> method.
1561+ </summary>
1562+ <param name="loggingEvents">The array of events to log.</param>
1563+ <remarks>
1564+ <para>
1565+ This method cannot be overridden by derived classes. A
1566+ derived class should override the <see cref="M:Append(LoggingEvent[])"/> method
1567+ which is called by this method.
1568+ </para>
1569+ <para>
1570+ The implementation of this method is as follows:
1571+ </para>
1572+ <para>
1573+ <list type="bullet">
1574+ <item>
1575+ <description>
1576+ Checks that the severity of the <paramref name="loggingEvents"/>
1577+ is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
1578+ appender.</description>
1579+ </item>
1580+ <item>
1581+ <description>
1582+ Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
1583+ <paramref name="loggingEvents"/>.
1584+ </description>
1585+ </item>
1586+ <item>
1587+ <description>
1588+ Calls <see cref="M:PreAppendCheck()"/> and checks that
1589+ it returns <c>true</c>.</description>
1590+ </item>
1591+ </list>
1592+ </para>
1593+ <para>
1594+ If all of the above steps succeed then the <paramref name="loggingEvents"/>
1595+ will be passed to the <see cref="M:Append(LoggingEvent[])"/> method.
1596+ </para>
1597+ </remarks>
1598+ </member>
1599+ <member name="M:log4net.Appender.AppenderSkeleton.FilterEvent(log4net.Core.LoggingEvent)">
1600+ <summary>
1601+ Test if the logging event should we output by this appender
1602+ </summary>
1603+ <param name="loggingEvent">the event to test</param>
1604+ <returns><c>true</c> if the event should be output, <c>false</c> if the event should be ignored</returns>
1605+ <remarks>
1606+ <para>
1607+ This method checks the logging event against the threshold level set
1608+ on this appender and also against the filters specified on this
1609+ appender.
1610+ </para>
1611+ <para>
1612+ The implementation of this method is as follows:
1613+ </para>
1614+ <para>
1615+ <list type="bullet">
1616+ <item>
1617+ <description>
1618+ Checks that the severity of the <paramref name="loggingEvent"/>
1619+ is greater than or equal to the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> of this
1620+ appender.</description>
1621+ </item>
1622+ <item>
1623+ <description>
1624+ Checks that the <see cref="T:log4net.Filter.IFilter"/> chain accepts the
1625+ <paramref name="loggingEvent"/>.
1626+ </description>
1627+ </item>
1628+ </list>
1629+ </para>
1630+ </remarks>
1631+ </member>
1632+ <member name="M:log4net.Appender.AppenderSkeleton.AddFilter(log4net.Filter.IFilter)">
1633+ <summary>
1634+ Adds a filter to the end of the filter chain.
1635+ </summary>
1636+ <param name="filter">the filter to add to this appender</param>
1637+ <remarks>
1638+ <para>
1639+ The Filters are organized in a linked list.
1640+ </para>
1641+ <para>
1642+ Setting this property causes the new filter to be pushed onto the
1643+ back of the filter chain.
1644+ </para>
1645+ </remarks>
1646+ </member>
1647+ <member name="M:log4net.Appender.AppenderSkeleton.ClearFilters">
1648+ <summary>
1649+ Clears the filter list for this appender.
1650+ </summary>
1651+ <remarks>
1652+ <para>
1653+ Clears the filter list for this appender.
1654+ </para>
1655+ </remarks>
1656+ </member>
1657+ <member name="M:log4net.Appender.AppenderSkeleton.IsAsSevereAsThreshold(log4net.Core.Level)">
1658+ <summary>
1659+ Checks if the message level is below this appender's threshold.
1660+ </summary>
1661+ <param name="level"><see cref="T:log4net.Core.Level"/> to test against.</param>
1662+ <remarks>
1663+ <para>
1664+ If there is no threshold set, then the return value is always <c>true</c>.
1665+ </para>
1666+ </remarks>
24041667 <returns>
2405- <c>true</c> if the enumerator was successfully advanced to the next element;
2406- <c>false</c> if the enumerator has passed the end of the collection.
1668+ <c>true</c> if the <paramref name="level"/> meets the <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/>
1669+ requirements of this appender.
24071670 </returns>
2408- <exception cref="T:System.InvalidOperationException">
2409- The collection was modified after the enumerator was created.
2410- </exception>
24111671 </member>
2412- <member name="M:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Reset">
1672+ <member name="M:log4net.Appender.AppenderSkeleton.OnClose">
24131673 <summary>
2414- Sets the enumerator to its initial position, before the first element in the collection.
1674+ Is called when the appender is closed. Derived classes should override
1675+ this method if resources need to be released.
24151676 </summary>
1677+ <remarks>
1678+ <para>
1679+ Releases any resources allocated within the appender such as file handles,
1680+ network connections, etc.
1681+ </para>
1682+ <para>
1683+ It is a programming error to append to a closed appender.
1684+ </para>
1685+ </remarks>
24161686 </member>
2417- <member name="P:log4net.Appender.AppenderCollection.IAppenderCollectionEnumerator.Current">
1687+ <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent)">
24181688 <summary>
2419- Gets the current element in the collection.
1689+ Subclasses of <see cref="T:log4net.Appender.AppenderSkeleton"/> should implement this method
1690+ to perform actual logging.
24201691 </summary>
1692+ <param name="loggingEvent">The event to append.</param>
1693+ <remarks>
1694+ <para>
1695+ A subclass must implement this method to perform
1696+ logging of the <paramref name="loggingEvent"/>.
1697+ </para>
1698+ <para>This method will be called by <see cref="M:DoAppend(LoggingEvent)"/>
1699+ if all the conditions listed for that method are met.
1700+ </para>
1701+ <para>
1702+ To restrict the logging of events in the appender
1703+ override the <see cref="M:PreAppendCheck()"/> method.
1704+ </para>
1705+ </remarks>
24211706 </member>
2422- <member name="T:log4net.Appender.AppenderCollection.Tag">
1707+ <member name="M:log4net.Appender.AppenderSkeleton.Append(log4net.Core.LoggingEvent[])">
24231708 <summary>
2424- Type visible only to our subclasses
2425- Used to access protected constructor
1709+ Append a bulk array of logging events.
24261710 </summary>
2427- <exclude/>
1711+ <param name="loggingEvents">the array of logging events</param>
1712+ <remarks>
1713+ <para>
1714+ This base class implementation calls the <see cref="M:Append(LoggingEvent)"/>
1715+ method for each element in the bulk array.
1716+ </para>
1717+ <para>
1718+ A sub class that can better process a bulk array of events should
1719+ override this method in addition to <see cref="M:Append(LoggingEvent)"/>.
1720+ </para>
1721+ </remarks>
24281722 </member>
2429- <member name="F:log4net.Appender.AppenderCollection.Tag.Default">
1723+ <member name="M:log4net.Appender.AppenderSkeleton.PreAppendCheck">
24301724 <summary>
2431- A value
1725+ Called before <see cref="M:Append(LoggingEvent)"/> as a precondition.
24321726 </summary>
1727+ <remarks>
1728+ <para>
1729+ This method is called by <see cref="M:DoAppend(LoggingEvent)"/>
1730+ before the call to the abstract <see cref="M:Append(LoggingEvent)"/> method.
1731+ </para>
1732+ <para>
1733+ This method can be overridden in a subclass to extend the checks
1734+ made before the event is passed to the <see cref="M:Append(LoggingEvent)"/> method.
1735+ </para>
1736+ <para>
1737+ A subclass should ensure that they delegate this call to
1738+ this base class if it is overridden.
1739+ </para>
1740+ </remarks>
1741+ <returns><c>true</c> if the call to <see cref="M:Append(LoggingEvent)"/> should proceed.</returns>
24331742 </member>
2434- <member name="T:log4net.Appender.AppenderCollection.Enumerator">
1743+ <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(log4net.Core.LoggingEvent)">
24351744 <summary>
2436- Supports simple iteration over a <see cref="T:log4net.Appender.AppenderCollection"/>.
1745+ Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
24371746 </summary>
2438- <exclude/>
1747+ <param name="loggingEvent">The event to render.</param>
1748+ <returns>The event rendered as a string.</returns>
1749+ <remarks>
1750+ <para>
1751+ Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to
1752+ a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
1753+ set to render the <paramref name="loggingEvent"/> to
1754+ a string.
1755+ </para>
1756+ <para>If there is exception data in the logging event and
1757+ the layout does not process the exception, this method
1758+ will append the exception text to the rendered string.
1759+ </para>
1760+ <para>
1761+ Where possible use the alternative version of this method
1762+ <see cref="M:RenderLoggingEvent(TextWriter,LoggingEvent)"/>.
1763+ That method streams the rendering onto an existing Writer
1764+ which can give better performance if the caller already has
1765+ a <see cref="T:System.IO.TextWriter"/> open and ready for writing.
1766+ </para>
1767+ </remarks>
24391768 </member>
2440- <member name="M:log4net.Appender.AppenderCollection.Enumerator.#ctor(log4net.Appender.AppenderCollection)">
1769+ <member name="M:log4net.Appender.AppenderSkeleton.RenderLoggingEvent(System.IO.TextWriter,log4net.Core.LoggingEvent)">
24411770 <summary>
2442- Initializes a new instance of the <c>Enumerator</c> class.
1771+ Renders the <see cref="T:log4net.Core.LoggingEvent"/> to a string.
24431772 </summary>
2444- <param name="tc"></param>
1773+ <param name="loggingEvent">The event to render.</param>
1774+ <param name="writer">The TextWriter to write the formatted event to</param>
1775+ <remarks>
1776+ <para>
1777+ Helper method to render a <see cref="T:log4net.Core.LoggingEvent"/> to
1778+ a string. This appender must have a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/>
1779+ set to render the <paramref name="loggingEvent"/> to
1780+ a string.
1781+ </para>
1782+ <para>If there is exception data in the logging event and
1783+ the layout does not process the exception, this method
1784+ will append the exception text to the rendered string.
1785+ </para>
1786+ <para>
1787+ Use this method in preference to <see cref="M:RenderLoggingEvent(LoggingEvent)"/>
1788+ where possible. If, however, the caller needs to render the event
1789+ to a string then <see cref="M:RenderLoggingEvent(LoggingEvent)"/> does
1790+ provide an efficient mechanism for doing so.
1791+ </para>
1792+ </remarks>
24451793 </member>
2446- <member name="M:log4net.Appender.AppenderCollection.Enumerator.MoveNext">
1794+ <member name="P:log4net.Appender.AppenderSkeleton.RequiresLayout">
24471795 <summary>
2448- Advances the enumerator to the next element in the collection.
1796+ Tests if this appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
24491797 </summary>
1798+ <remarks>
1799+ <para>
1800+ In the rather exceptional case, where the appender
1801+ implementation admits a layout but can also work without it,
1802+ then the appender should return <c>true</c>.
1803+ </para>
1804+ <para>
1805+ This default implementation always returns <c>false</c>.
1806+ </para>
1807+ </remarks>
24501808 <returns>
2451- <c>true</c> if the enumerator was successfully advanced to the next element;
2452- <c>false</c> if the enumerator has passed the end of the collection.
1809+ <c>true</c> if the appender requires a layout object, otherwise <c>false</c>.
24531810 </returns>
2454- <exception cref="T:System.InvalidOperationException">
2455- The collection was modified after the enumerator was created.
2456- </exception>
24571811 </member>
2458- <member name="M:log4net.Appender.AppenderCollection.Enumerator.Reset">
1812+ <member name="M:log4net.Appender.AppenderSkeleton.Flush(System.Int32)">
24591813 <summary>
2460- Sets the enumerator to its initial position, before the first element in the collection.
1814+ Flushes any buffered log data.
24611815 </summary>
1816+ <remarks>
1817+ This implementation doesn't flush anything and always returns true
1818+ </remarks>
1819+ <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
24621820 </member>
2463- <member name="P:log4net.Appender.AppenderCollection.Enumerator.Current">
1821+ <member name="F:log4net.Appender.AppenderSkeleton.m_layout">
24641822 <summary>
2465- Gets the current element in the collection.
1823+ The layout of this appender.
24661824 </summary>
1825+ <remarks>
1826+ See <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> for more information.
1827+ </remarks>
24671828 </member>
2468- <member name="T:log4net.Appender.AppenderCollection.ReadOnlyAppenderCollection">
2469- <exclude/>
1829+ <member name="F:log4net.Appender.AppenderSkeleton.m_name">
1830+ <summary>
1831+ The name of this appender.
1832+ </summary>
1833+ <remarks>
1834+ See <see cref="P:log4net.Appender.AppenderSkeleton.Name"/> for more information.
1835+ </remarks>
24701836 </member>
1837+ <member name="F:log4net.Appender.AppenderSkeleton.m_threshold">
1838+ <summary>
1839+ The level threshold of this appender.
1840+ </summary>
1841+ <remarks>
1842+ <para>
1843+ There is no level threshold filtering by default.
1844+ </para>
1845+ <para>
1846+ See <see cref="P:log4net.Appender.AppenderSkeleton.Threshold"/> for more information.
1847+ </para>
1848+ </remarks>
1849+ </member>
1850+ <member name="F:log4net.Appender.AppenderSkeleton.m_errorHandler">
1851+ <summary>
1852+ It is assumed and enforced that errorHandler is never null.
1853+ </summary>
1854+ <remarks>
1855+ <para>
1856+ It is assumed and enforced that errorHandler is never null.
1857+ </para>
1858+ <para>
1859+ See <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/> for more information.
1860+ </para>
1861+ </remarks>
1862+ </member>
1863+ <member name="F:log4net.Appender.AppenderSkeleton.m_headFilter">
1864+ <summary>
1865+ The first filter in the filter chain.
1866+ </summary>
1867+ <remarks>
1868+ <para>
1869+ Set to <c>null</c> initially.
1870+ </para>
1871+ <para>
1872+ See <see cref="T:log4net.Filter.IFilter"/> for more information.
1873+ </para>
1874+ </remarks>
1875+ </member>
1876+ <member name="F:log4net.Appender.AppenderSkeleton.m_tailFilter">
1877+ <summary>
1878+ The last filter in the filter chain.
1879+ </summary>
1880+ <remarks>
1881+ See <see cref="T:log4net.Filter.IFilter"/> for more information.
1882+ </remarks>
1883+ </member>
1884+ <member name="F:log4net.Appender.AppenderSkeleton.m_closed">
1885+ <summary>
1886+ Flag indicating if this appender is closed.
1887+ </summary>
1888+ <remarks>
1889+ See <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> for more information.
1890+ </remarks>
1891+ </member>
1892+ <member name="F:log4net.Appender.AppenderSkeleton.m_recursiveGuard">
1893+ <summary>
1894+ The guard prevents an appender from repeatedly calling its own DoAppend method
1895+ </summary>
1896+ </member>
1897+ <member name="F:log4net.Appender.AppenderSkeleton.m_renderWriter">
1898+ <summary>
1899+ StringWriter used to render events
1900+ </summary>
1901+ </member>
1902+ <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
1903+ <summary>
1904+ Initial buffer size
1905+ </summary>
1906+ </member>
1907+ <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapacity">
1908+ <summary>
1909+ Maximum buffer size before it is recycled
1910+ </summary>
1911+ </member>
1912+ <member name="F:log4net.Appender.AppenderSkeleton.declaringType">
1913+ <summary>
1914+ The fully qualified type of the AppenderSkeleton class.
1915+ </summary>
1916+ <remarks>
1917+ Used by the internal logger to record the Type of the
1918+ log message.
1919+ </remarks>
1920+ </member>
24711921 <member name="T:log4net.Appender.AspNetTraceAppender">
24721922 <summary>
24731923 <para>
@@ -2497,7 +1947,7 @@
24971947 </member>
24981948 <member name="M:log4net.Appender.AspNetTraceAppender.#ctor">
24991949 <summary>
2500- Initializes a new instance of the <see cref="T:log4net.Appender.AspNetTraceAppender"/> class.
1950+ Initializes a new instance of the <see cref="T:log4net.Appender.AspNetTraceAppender" /> class.
25011951 </summary>
25021952 <remarks>
25031953 <para>
@@ -2518,11 +1968,6 @@
25181968 </para>
25191969 </remarks>
25201970 </member>
2521- <member name="F:log4net.Appender.AspNetTraceAppender.m_category">
2522- <summary>
2523- Defaults to %logger
2524- </summary>
2525- </member>
25261971 <member name="P:log4net.Appender.AspNetTraceAppender.RequiresLayout">
25271972 <summary>
25281973 This appender requires a <see cref="N:log4net.Layout"/> to be set.
@@ -2547,123 +1992,419 @@
25471992 </para>
25481993 </remarks>
25491994 </member>
2550- <member name="T:log4net.Appender.BufferingForwardingAppender">
1995+ <member name="F:log4net.Appender.AspNetTraceAppender.m_category">
25511996 <summary>
2552- Buffers events and then forwards them to attached appenders.
1997+ Defaults to %logger
25531998 </summary>
1999+ </member>
2000+ <member name="T:log4net.Appender.BufferingAppenderSkeleton">
2001+ <summary>
2002+ Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/> that
2003+ buffers events in a fixed size buffer.
2004+ </summary>
25542005 <remarks>
25552006 <para>
2556- The events are buffered in this appender until conditions are
2557- met to allow the appender to deliver the events to the attached
2558- appenders. See <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> for the
2559- conditions that cause the buffer to be sent.
2007+ This base class should be used by appenders that need to buffer a
2008+ number of events before logging them.
2009+ For example the <see cref="T:log4net.Appender.AdoNetAppender"/>
2010+ buffers events and then submits the entire contents of the buffer to
2011+ the underlying database in one go.
25602012 </para>
2561- <para>The forwarding appender can be used to specify different
2562- thresholds and filters for the same appender at different locations
2563- within the hierarchy.
2013+ <para>
2014+ Subclasses should override the <see cref="M:SendBuffer(LoggingEvent[])"/>
2015+ method to deliver the buffered events.
25642016 </para>
2017+ <para>The BufferingAppenderSkeleton maintains a fixed size cyclic
2018+ buffer of events. The size of the buffer is set using
2019+ the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> property.
2020+ </para>
2021+ <para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is used to inspect
2022+ each event as it arrives in the appender. If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
2023+ triggers, then the current buffer is sent immediately
2024+ (see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the event
2025+ is stored in the buffer. For example, an evaluator can be used to
2026+ deliver the events immediately when an ERROR event arrives.
2027+ </para>
2028+ <para>
2029+ The buffering appender can be configured in a <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode.
2030+ By default the appender is NOT lossy. When the buffer is full all
2031+ the buffered events are sent with <see cref="M:SendBuffer(LoggingEvent[])"/>.
2032+ If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property is set to <c>true</c> then the
2033+ buffer will not be sent when it is full, and new events arriving
2034+ in the appender will overwrite the oldest event in the buffer.
2035+ In lossy mode the buffer will only be sent when the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
2036+ triggers. This can be useful behavior when you need to know about
2037+ ERROR events but not about events with a lower level, configure an
2038+ evaluator that will trigger when an ERROR event arrives, the whole
2039+ buffer will be sent which gives a history of events leading up to
2040+ the ERROR event.
2041+ </para>
25652042 </remarks>
25662043 <author>Nicko Cadell</author>
25672044 <author>Gert Driesen</author>
25682045 </member>
2569- <member name="T:log4net.Core.IAppenderAttachable">
2046+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor">
25702047 <summary>
2571- Interface for attaching appenders to objects.
2048+ Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton" /> class.
25722049 </summary>
25732050 <remarks>
25742051 <para>
2575- Interface for attaching, removing and retrieving appenders.
2052+ Protected default constructor to allow subclassing.
25762053 </para>
25772054 </remarks>
2578- <author>Nicko Cadell</author>
2579- <author>Gert Driesen</author>
25802055 </member>
2581- <member name="M:log4net.Core.IAppenderAttachable.AddAppender(log4net.Appender.IAppender)">
2056+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.#ctor(System.Boolean)">
25822057 <summary>
2583- Attaches an appender.
2058+ Initializes a new instance of the <see cref="T:log4net.Appender.BufferingAppenderSkeleton" /> class.
25842059 </summary>
2585- <param name="appender">The appender to add.</param>
2060+ <param name="eventMustBeFixed">the events passed through this appender must be
2061+ fixed by the time that they arrive in the derived class' <c>SendBuffer</c> method.</param>
25862062 <remarks>
25872063 <para>
2588- Add the specified appender. The implementation may
2589- choose to allow or deny duplicate appenders.
2064+ Protected constructor to allow subclassing.
25902065 </para>
2066+ <para>
2067+ The <paramref name="eventMustBeFixed"/> should be set if the subclass
2068+ expects the events delivered to be fixed even if the
2069+ <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to zero, i.e. when no buffering occurs.
2070+ </para>
25912071 </remarks>
25922072 </member>
2593- <member name="M:log4net.Core.IAppenderAttachable.GetAppender(System.String)">
2073+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.Lossy">
25942074 <summary>
2595- Gets an attached appender with the specified name.
2075+ Gets or sets a value that indicates whether the appender is lossy.
25962076 </summary>
2597- <param name="name">The name of the appender to get.</param>
2598- <returns>
2599- The appender with the name specified, or <c>null</c> if no appender with the
2600- specified name is found.
2601- </returns>
2077+ <value>
2078+ <c>true</c> if the appender is lossy, otherwise <c>false</c>. The default is <c>false</c>.
2079+ </value>
26022080 <remarks>
26032081 <para>
2604- Returns an attached appender with the <paramref name="name"/> specified.
2605- If no appender with the specified name is found <c>null</c> will be
2606- returned.
2082+ This appender uses a buffer to store logging events before
2083+ delivering them. A triggering event causes the whole buffer
2084+ to be send to the remote sink. If the buffer overruns before
2085+ a triggering event then logging events could be lost. Set
2086+ <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> to <c>false</c> to prevent logging events
2087+ from being lost.
26072088 </para>
2089+ <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
2090+ <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
26082091 </remarks>
26092092 </member>
2610- <member name="M:log4net.Core.IAppenderAttachable.RemoveAllAppenders">
2093+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize">
26112094 <summary>
2612- Removes all attached appenders.
2095+ Gets or sets the size of the cyclic buffer used to hold the
2096+ logging events.
26132097 </summary>
2098+ <value>
2099+ The size of the cyclic buffer used to hold the logging events.
2100+ </value>
26142101 <remarks>
26152102 <para>
2616- Removes and closes all attached appenders
2103+ The <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> option takes a positive integer
2104+ representing the maximum number of logging events to collect in
2105+ a cyclic buffer. When the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is reached,
2106+ oldest events are deleted as new events are added to the
2107+ buffer. By default the size of the cyclic buffer is 512 events.
26172108 </para>
2109+ <para>
2110+ If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> is set to a value less than
2111+ or equal to 1 then no buffering will occur. The logging event
2112+ will be delivered synchronously (depending on the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>
2113+ and <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> properties). Otherwise the event will
2114+ be buffered.
2115+ </para>
26182116 </remarks>
26192117 </member>
2620- <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(log4net.Appender.IAppender)">
2118+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator">
26212119 <summary>
2622- Removes the specified appender from the list of attached appenders.
2120+ Gets or sets the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the
2121+ buffer to be sent immediately.
26232122 </summary>
2624- <param name="appender">The appender to remove.</param>
2625- <returns>The appender removed from the list</returns>
2123+ <value>
2124+ The <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> that causes the buffer to be
2125+ sent immediately.
2126+ </value>
26262127 <remarks>
26272128 <para>
2628- The appender removed is not closed.
2629- If you are discarding the appender you must call
2630- <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
2129+ The evaluator will be called for each event that is appended to this
2130+ appender. If the evaluator triggers then the current buffer will
2131+ immediately be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
26312132 </para>
2133+ <para>If <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> is set to <c>true</c> then an
2134+ <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be specified.</para>
26322135 </remarks>
26332136 </member>
2634- <member name="M:log4net.Core.IAppenderAttachable.RemoveAppender(System.String)">
2137+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator">
26352138 <summary>
2636- Removes the appender with the specified name from the list of appenders.
2139+ Gets or sets the value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
26372140 </summary>
2638- <param name="name">The name of the appender to remove.</param>
2639- <returns>The appender removed from the list</returns>
2141+ <value>
2142+ The value of the <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> to use.
2143+ </value>
26402144 <remarks>
26412145 <para>
2642- The appender removed is not closed.
2643- If you are discarding the appender you must call
2644- <see cref="M:log4net.Appender.IAppender.Close"/> on the appender removed.
2146+ The evaluator will be called for each event that is discarded from this
2147+ appender. If the evaluator triggers then the current buffer will immediately
2148+ be sent (see <see cref="M:SendBuffer(LoggingEvent[])"/>).
26452149 </para>
26462150 </remarks>
26472151 </member>
2648- <member name="P:log4net.Core.IAppenderAttachable.Appenders">
2152+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.OnlyFixPartialEventData">
26492153 <summary>
2650- Gets all attached appenders.
2154+ Gets or sets a value indicating if only part of the logging event data
2155+ should be fixed.
26512156 </summary>
26522157 <value>
2653- A collection of attached appenders.
2158+ <c>true</c> if the appender should only fix part of the logging event
2159+ data, otherwise <c>false</c>. The default is <c>false</c>.
26542160 </value>
26552161 <remarks>
26562162 <para>
2657- Gets a collection of attached appenders.
2658- If there are no attached appenders the
2659- implementation should return an empty
2660- collection rather than <c>null</c>.
2163+ Setting this property to <c>true</c> will cause only part of the
2164+ event data to be fixed and serialized. This will improve performance.
26612165 </para>
2166+ <para>
2167+ See <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/> for more information.
2168+ </para>
26622169 </remarks>
26632170 </member>
2171+ <member name="P:log4net.Appender.BufferingAppenderSkeleton.Fix">
2172+ <summary>
2173+ Gets or sets a the fields that will be fixed in the event
2174+ </summary>
2175+ <value>
2176+ The event fields that will be fixed before the event is buffered
2177+ </value>
2178+ <remarks>
2179+ <para>
2180+ The logging event needs to have certain thread specific values
2181+ captured before it can be buffered. See <see cref="P:log4net.Core.LoggingEvent.Fix"/>
2182+ for details.
2183+ </para>
2184+ </remarks>
2185+ <seealso cref="P:log4net.Core.LoggingEvent.Fix"/>
2186+ </member>
2187+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.Int32)">
2188+ <summary>
2189+ Flushes any buffered log data.
2190+ </summary>
2191+ <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
2192+ <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
2193+ </member>
2194+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush">
2195+ <summary>
2196+ Flush the currently buffered events
2197+ </summary>
2198+ <remarks>
2199+ <para>
2200+ Flushes any events that have been buffered.
2201+ </para>
2202+ <para>
2203+ If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
2204+ of the buffer will NOT be flushed to the appender.
2205+ </para>
2206+ </remarks>
2207+ </member>
2208+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.Flush(System.Boolean)">
2209+ <summary>
2210+ Flush the currently buffered events
2211+ </summary>
2212+ <param name="flushLossyBuffer">set to <c>true</c> to flush the buffer of lossy events</param>
2213+ <remarks>
2214+ <para>
2215+ Flushes events that have been buffered. If <paramref name="flushLossyBuffer" /> is
2216+ <c>false</c> then events will only be flushed if this buffer is non-lossy mode.
2217+ </para>
2218+ <para>
2219+ If the appender is buffering in <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode then the contents
2220+ of the buffer will only be flushed if <paramref name="flushLossyBuffer" /> is <c>true</c>.
2221+ In this case the contents of the buffer will be tested against the
2222+ <see cref="P:log4net.Appender.BufferingAppenderSkeleton.LossyEvaluator"/> and if triggering will be output. All other buffered
2223+ events will be discarded.
2224+ </para>
2225+ <para>
2226+ If <paramref name="flushLossyBuffer" /> is <c>true</c> then the buffer will always
2227+ be emptied by calling this method.
2228+ </para>
2229+ </remarks>
2230+ </member>
2231+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions">
2232+ <summary>
2233+ Initialize the appender based on the options set
2234+ </summary>
2235+ <remarks>
2236+ <para>
2237+ This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
2238+ activation scheme. The <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> method must
2239+ be called on this object after the configuration properties have
2240+ been set. Until <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> is called this
2241+ object is in an undefined state and must not be used.
2242+ </para>
2243+ <para>
2244+ If any of the configuration properties are modified then
2245+ <see cref="M:log4net.Appender.BufferingAppenderSkeleton.ActivateOptions"/> must be called again.
2246+ </para>
2247+ </remarks>
2248+ </member>
2249+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.OnClose">
2250+ <summary>
2251+ Close this appender instance.
2252+ </summary>
2253+ <remarks>
2254+ <para>
2255+ Close this appender instance. If this appender is marked
2256+ as not <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> then the remaining events in
2257+ the buffer must be sent when the appender is closed.
2258+ </para>
2259+ </remarks>
2260+ </member>
2261+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.Append(log4net.Core.LoggingEvent)">
2262+ <summary>
2263+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
2264+ </summary>
2265+ <param name="loggingEvent">the event to log</param>
2266+ <remarks>
2267+ <para>
2268+ Stores the <paramref name="loggingEvent"/> in the cyclic buffer.
2269+ </para>
2270+ <para>
2271+ The buffer will be sent (i.e. passed to the <see cref="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])"/>
2272+ method) if one of the following conditions is met:
2273+ </para>
2274+ <list type="bullet">
2275+ <item>
2276+ <description>The cyclic buffer is full and this appender is
2277+ marked as not lossy (see <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/>)</description>
2278+ </item>
2279+ <item>
2280+ <description>An <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> is set and
2281+ it is triggered for the <paramref name="loggingEvent"/>
2282+ specified.</description>
2283+ </item>
2284+ </list>
2285+ <para>
2286+ Before the event is stored in the buffer it is fixed
2287+ (see <see cref="M:LoggingEvent.FixVolatileData(FixFlags)"/>) to ensure that
2288+ any data referenced by the event will be valid when the buffer
2289+ is processed.
2290+ </para>
2291+ </remarks>
2292+ </member>
2293+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendFromBuffer(log4net.Core.LoggingEvent,log4net.Util.CyclicBuffer)">
2294+ <summary>
2295+ Sends the contents of the buffer.
2296+ </summary>
2297+ <param name="firstLoggingEvent">The first logging event.</param>
2298+ <param name="buffer">The buffer containing the events that need to be send.</param>
2299+ <remarks>
2300+ <para>
2301+ The subclass must override <see cref="M:SendBuffer(LoggingEvent[])"/>.
2302+ </para>
2303+ </remarks>
2304+ </member>
2305+ <member name="M:log4net.Appender.BufferingAppenderSkeleton.SendBuffer(log4net.Core.LoggingEvent[])">
2306+ <summary>
2307+ Sends the events.
2308+ </summary>
2309+ <param name="events">The events that need to be send.</param>
2310+ <remarks>
2311+ <para>
2312+ The subclass must override this method to process the buffered events.
2313+ </para>
2314+ </remarks>
2315+ </member>
2316+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE">
2317+ <summary>
2318+ The default buffer size.
2319+ </summary>
2320+ <remarks>
2321+ The default size of the cyclic buffer used to store events.
2322+ This is set to 512 by default.
2323+ </remarks>
2324+ </member>
2325+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_bufferSize">
2326+ <summary>
2327+ The size of the cyclic buffer used to hold the logging events.
2328+ </summary>
2329+ <remarks>
2330+ Set to <see cref="F:log4net.Appender.BufferingAppenderSkeleton.DEFAULT_BUFFER_SIZE"/> by default.
2331+ </remarks>
2332+ </member>
2333+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_cb">
2334+ <summary>
2335+ The cyclic buffer used to store the logging events.
2336+ </summary>
2337+ </member>
2338+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_evaluator">
2339+ <summary>
2340+ The triggering event evaluator that causes the buffer to be sent immediately.
2341+ </summary>
2342+ <remarks>
2343+ The object that is used to determine if an event causes the entire
2344+ buffer to be sent immediately. This field can be <c>null</c>, which
2345+ indicates that event triggering is not to be done. The evaluator
2346+ can be set using the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> property. If this appender
2347+ has the <see cref="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy"/> (<see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property) set to
2348+ <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must be set.
2349+ </remarks>
2350+ </member>
2351+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossy">
2352+ <summary>
2353+ Indicates if the appender should overwrite events in the cyclic buffer
2354+ when it becomes full, or if the buffer should be flushed when the
2355+ buffer is full.
2356+ </summary>
2357+ <remarks>
2358+ If this field is set to <c>true</c> then an <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> must
2359+ be set.
2360+ </remarks>
2361+ </member>
2362+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_lossyEvaluator">
2363+ <summary>
2364+ The triggering event evaluator filters discarded events.
2365+ </summary>
2366+ <remarks>
2367+ The object that is used to determine if an event that is discarded should
2368+ really be discarded or if it should be sent to the appenders.
2369+ This field can be <c>null</c>, which indicates that all discarded events will
2370+ be discarded.
2371+ </remarks>
2372+ </member>
2373+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_fixFlags">
2374+ <summary>
2375+ Value indicating which fields in the event should be fixed
2376+ </summary>
2377+ <remarks>
2378+ By default all fields are fixed
2379+ </remarks>
2380+ </member>
2381+ <member name="F:log4net.Appender.BufferingAppenderSkeleton.m_eventMustBeFixed">
2382+ <summary>
2383+ The events delivered to the subclass must be fixed.
2384+ </summary>
2385+ </member>
2386+ <member name="T:log4net.Appender.BufferingForwardingAppender">
2387+ <summary>
2388+ Buffers events and then forwards them to attached appenders.
2389+ </summary>
2390+ <remarks>
2391+ <para>
2392+ The events are buffered in this appender until conditions are
2393+ met to allow the appender to deliver the events to the attached
2394+ appenders. See <see cref="T:log4net.Appender.BufferingAppenderSkeleton"/> for the
2395+ conditions that cause the buffer to be sent.
2396+ </para>
2397+ <para>The forwarding appender can be used to specify different
2398+ thresholds and filters for the same appender at different locations
2399+ within the hierarchy.
2400+ </para>
2401+ </remarks>
2402+ <author>Nicko Cadell</author>
2403+ <author>Gert Driesen</author>
2404+ </member>
26642405 <member name="M:log4net.Appender.BufferingForwardingAppender.#ctor">
26652406 <summary>
2666- Initializes a new instance of the <see cref="T:log4net.Appender.BufferingForwardingAppender"/> class.
2407+ Initializes a new instance of the <see cref="T:log4net.Appender.BufferingForwardingAppender" /> class.
26672408 </summary>
26682409 <remarks>
26692410 <para>
@@ -2698,17 +2439,30 @@
26982439 </member>
26992440 <member name="M:log4net.Appender.BufferingForwardingAppender.AddAppender(log4net.Appender.IAppender)">
27002441 <summary>
2701- Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
2442+ Adds an <see cref="T:log4net.Appender.IAppender" /> to the list of appenders of this
27022443 instance.
27032444 </summary>
2704- <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
2445+ <param name="newAppender">The <see cref="T:log4net.Appender.IAppender" /> to add to this appender.</param>
27052446 <remarks>
27062447 <para>
2707- If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
2448+ If the specified <see cref="T:log4net.Appender.IAppender" /> is already in the list of
27082449 appenders, then it won't be added again.
27092450 </para>
27102451 </remarks>
27112452 </member>
2453+ <member name="P:log4net.Appender.BufferingForwardingAppender.Appenders">
2454+ <summary>
2455+ Gets the appenders contained in this appender as an
2456+ <see cref="T:System.Collections.ICollection"/>.
2457+ </summary>
2458+ <remarks>
2459+ If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/>
2460+ is returned.
2461+ </remarks>
2462+ <returns>
2463+ A collection of the appenders in this appender.
2464+ </returns>
2465+ </member>
27122466 <member name="M:log4net.Appender.BufferingForwardingAppender.GetAppender(System.String)">
27132467 <summary>
27142468 Looks for the appender with the specified name.
@@ -2762,19 +2516,6 @@
27622516 Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
27632517 </summary>
27642518 </member>
2765- <member name="P:log4net.Appender.BufferingForwardingAppender.Appenders">
2766- <summary>
2767- Gets the appenders contained in this appender as an
2768- <see cref="T:System.Collections.ICollection"/>.
2769- </summary>
2770- <remarks>
2771- If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/>
2772- is returned.
2773- </remarks>
2774- <returns>
2775- A collection of the appenders in this appender.
2776- </returns>
2777- </member>
27782519 <member name="T:log4net.Appender.ColoredConsoleAppender">
27792520 <summary>
27802521 Appends logging events to the console.
@@ -2805,13 +2546,13 @@
28052546 </para>
28062547 <code lang="XML" escaped="true">
28072548 <mapping>
2808- <level value="ERROR"/>
2809- <foreColor value="White"/>
2810- <backColor value="Red, HighIntensity"/>
2549+ <level value="ERROR" />
2550+ <foreColor value="White" />
2551+ <backColor value="Red, HighIntensity" />
28112552 </mapping>
28122553 <mapping>
2813- <level value="DEBUG"/>
2814- <backColor value="Green"/>
2554+ <level value="DEBUG" />
2555+ <backColor value="Green" />
28152556 </mapping>
28162557 </code>
28172558 <para>
@@ -2832,63 +2573,107 @@
28322573 <author>Rick Hobbs</author>
28332574 <author>Nicko Cadell</author>
28342575 </member>
2835- <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleOut">
2576+ <member name="T:log4net.Appender.ColoredConsoleAppender.Colors">
28362577 <summary>
2837- The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2838- standard output stream.
2578+ The enum of possible color values for use with the color mapping method
28392579 </summary>
28402580 <remarks>
28412581 <para>
2842- The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2843- standard output stream.
2582+ The following flags can be combined together to
2583+ form the colors.
28442584 </para>
28452585 </remarks>
2586+ <seealso cref="T:log4net.Appender.ColoredConsoleAppender" />
28462587 </member>
2847- <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleError">
2588+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Blue">
28482589 <summary>
2849- The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2850- standard error output stream.
2590+ color is blue
28512591 </summary>
2852- <remarks>
2853- <para>
2854- The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2855- standard error output stream.
2856- </para>
2857- </remarks>
28582592 </member>
2593+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Green">
2594+ <summary>
2595+ color is green
2596+ </summary>
2597+ </member>
2598+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Red">
2599+ <summary>
2600+ color is red
2601+ </summary>
2602+ </member>
2603+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.White">
2604+ <summary>
2605+ color is white
2606+ </summary>
2607+ </member>
2608+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Yellow">
2609+ <summary>
2610+ color is yellow
2611+ </summary>
2612+ </member>
2613+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Purple">
2614+ <summary>
2615+ color is purple
2616+ </summary>
2617+ </member>
2618+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Cyan">
2619+ <summary>
2620+ color is cyan
2621+ </summary>
2622+ </member>
2623+ <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity">
2624+ <summary>
2625+ color is intensified
2626+ </summary>
2627+ </member>
28592628 <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor">
28602629 <summary>
2861- Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class.
2630+ Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender" /> class.
28622631 </summary>
28632632 <remarks>
2864- The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class is set up to write
2633+ The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender" /> class is set up to write
28652634 to the standard output stream.
28662635 </remarks>
28672636 </member>
28682637 <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.Layout.ILayout)">
28692638 <summary>
2870- Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class
2639+ Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender" /> class
28712640 with the specified layout.
28722641 </summary>
28732642 <param name="layout">the layout to use for this appender</param>
28742643 <remarks>
2875- The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class is set up to write
2644+ The instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender" /> class is set up to write
28762645 to the standard output stream.
28772646 </remarks>
28782647 </member>
28792648 <member name="M:log4net.Appender.ColoredConsoleAppender.#ctor(log4net.Layout.ILayout,System.Boolean)">
28802649 <summary>
2881- Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender"/> class
2650+ Initializes a new instance of the <see cref="T:log4net.Appender.ColoredConsoleAppender" /> class
28822651 with the specified layout.
28832652 </summary>
28842653 <param name="layout">the layout to use for this appender</param>
28852654 <param name="writeToErrorStream">flag set to <c>true</c> to write to the console error stream</param>
28862655 <remarks>
2887- When <paramref name="writeToErrorStream"/> is set to <c>true</c>, output is written to
2656+ When <paramref name="writeToErrorStream" /> is set to <c>true</c>, output is written to
28882657 the standard error output stream. Otherwise, output is written to the standard
28892658 output stream.
28902659 </remarks>
28912660 </member>
2661+ <member name="P:log4net.Appender.ColoredConsoleAppender.Target">
2662+ <summary>
2663+ Target is the value of the console output stream.
2664+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2665+ </summary>
2666+ <value>
2667+ Target is the value of the console output stream.
2668+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2669+ </value>
2670+ <remarks>
2671+ <para>
2672+ Target is the value of the console output stream.
2673+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2674+ </para>
2675+ </remarks>
2676+ </member>
28922677 <member name="M:log4net.Appender.ColoredConsoleAppender.AddMapping(log4net.Appender.ColoredConsoleAppender.LevelColors)">
28932678 <summary>
28942679 Add a mapping of level to color - done by the config file
@@ -2916,115 +2701,71 @@
29162701 </para>
29172702 </remarks>
29182703 </member>
2919- <member name="M:log4net.Appender.ColoredConsoleAppender.ActivateOptions">
2704+ <member name="P:log4net.Appender.ColoredConsoleAppender.RequiresLayout">
29202705 <summary>
2921- Initialize the options for this appender
2706+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
29222707 </summary>
2708+ <value><c>true</c></value>
29232709 <remarks>
29242710 <para>
2925- Initialize the level to color mappings set on this appender.
2711+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
29262712 </para>
29272713 </remarks>
29282714 </member>
2929- <member name="F:log4net.Appender.ColoredConsoleAppender.m_writeToErrorStream">
2715+ <member name="M:log4net.Appender.ColoredConsoleAppender.ActivateOptions">
29302716 <summary>
2931- Flag to write output to the error stream rather than the standard output stream
2717+ Initialize the options for this appender
29322718 </summary>
2933- </member>
2934- <member name="F:log4net.Appender.ColoredConsoleAppender.m_levelMapping">
2935- <summary>
2936- Mapping from level object to color value
2937- </summary>
2938- </member>
2939- <member name="F:log4net.Appender.ColoredConsoleAppender.m_consoleOutputWriter">
2940- <summary>
2941- The console output stream writer to write to
2942- </summary>
29432719 <remarks>
29442720 <para>
2945- This writer is not thread safe.
2721+ Initialize the level to color mappings set on this appender.
29462722 </para>
29472723 </remarks>
29482724 </member>
2949- <member name="P:log4net.Appender.ColoredConsoleAppender.Target">
2725+ <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleOut">
29502726 <summary>
2951- Target is the value of the console output stream.
2952- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2727+ The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2728+ standard output stream.
29532729 </summary>
2954- <value>
2955- Target is the value of the console output stream.
2956- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2957- </value>
29582730 <remarks>
29592731 <para>
2960- Target is the value of the console output stream.
2961- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2732+ The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2733+ standard output stream.
29622734 </para>
29632735 </remarks>
29642736 </member>
2965- <member name="P:log4net.Appender.ColoredConsoleAppender.RequiresLayout">
2737+ <member name="F:log4net.Appender.ColoredConsoleAppender.ConsoleError">
29662738 <summary>
2967- This appender requires a <see cref="N:log4net.Layout"/> to be set.
2739+ The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2740+ standard error output stream.
29682741 </summary>
2969- <value><c>true</c></value>
29702742 <remarks>
29712743 <para>
2972- This appender requires a <see cref="N:log4net.Layout"/> to be set.
2744+ The <see cref="P:log4net.Appender.ColoredConsoleAppender.Target"/> to use when writing to the Console
2745+ standard error output stream.
29732746 </para>
29742747 </remarks>
29752748 </member>
2976- <member name="T:log4net.Appender.ColoredConsoleAppender.Colors">
2749+ <member name="F:log4net.Appender.ColoredConsoleAppender.m_writeToErrorStream">
29772750 <summary>
2978- The enum of possible color values for use with the color mapping method
2751+ Flag to write output to the error stream rather than the standard output stream
29792752 </summary>
2980- <remarks>
2981- <para>
2982- The following flags can be combined together to
2983- form the colors.
2984- </para>
2985- </remarks>
2986- <seealso cref="T:log4net.Appender.ColoredConsoleAppender"/>
29872753 </member>
2988- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Blue">
2754+ <member name="F:log4net.Appender.ColoredConsoleAppender.m_levelMapping">
29892755 <summary>
2990- color is blue
2756+ Mapping from level object to color value
29912757 </summary>
29922758 </member>
2993- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Green">
2759+ <member name="F:log4net.Appender.ColoredConsoleAppender.m_consoleOutputWriter">
29942760 <summary>
2995- color is green
2761+ The console output stream writer to write to
29962762 </summary>
2763+ <remarks>
2764+ <para>
2765+ This writer is not thread safe.
2766+ </para>
2767+ </remarks>
29972768 </member>
2998- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Red">
2999- <summary>
3000- color is red
3001- </summary>
3002- </member>
3003- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.White">
3004- <summary>
3005- color is white
3006- </summary>
3007- </member>
3008- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Yellow">
3009- <summary>
3010- color is yellow
3011- </summary>
3012- </member>
3013- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Purple">
3014- <summary>
3015- color is purple
3016- </summary>
3017- </member>
3018- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.Cyan">
3019- <summary>
3020- color is cyan
3021- </summary>
3022- </member>
3023- <member name="F:log4net.Appender.ColoredConsoleAppender.Colors.HighIntensity">
3024- <summary>
3025- color is intensified
3026- </summary>
3027- </member>
30282769 <member name="T:log4net.Appender.ColoredConsoleAppender.LevelColors">
30292770 <summary>
30302771 A class to act as a mapping between the level that a logging call is made at and
@@ -3036,16 +2777,6 @@
30362777 </para>
30372778 </remarks>
30382779 </member>
3039- <member name="M:log4net.Appender.ColoredConsoleAppender.LevelColors.ActivateOptions">
3040- <summary>
3041- Initialize the options for the object
3042- </summary>
3043- <remarks>
3044- <para>
3045- Combine the <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor"/> together.
3046- </para>
3047- </remarks>
3048- </member>
30492780 <member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor">
30502781 <summary>
30512782 The mapped foreground color for the specified level
@@ -3068,6 +2799,16 @@
30682799 </para>
30692800 </remarks>
30702801 </member>
2802+ <member name="M:log4net.Appender.ColoredConsoleAppender.LevelColors.ActivateOptions">
2803+ <summary>
2804+ Initialize the options for the object
2805+ </summary>
2806+ <remarks>
2807+ <para>
2808+ Combine the <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor"/> together.
2809+ </para>
2810+ </remarks>
2811+ </member>
30712812 <member name="P:log4net.Appender.ColoredConsoleAppender.LevelColors.CombinedColor">
30722813 <summary>
30732814 The combined <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.ForeColor"/> and <see cref="P:log4net.Appender.ColoredConsoleAppender.LevelColors.BackColor"/> suitable for
@@ -3100,63 +2841,55 @@
31002841 <author>Nicko Cadell</author>
31012842 <author>Gert Driesen</author>
31022843 </member>
3103- <member name="F:log4net.Appender.ConsoleAppender.ConsoleOut">
3104- <summary>
3105- The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
3106- standard output stream.
3107- </summary>
3108- <remarks>
3109- <para>
3110- The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
3111- standard output stream.
3112- </para>
3113- </remarks>
3114- </member>
3115- <member name="F:log4net.Appender.ConsoleAppender.ConsoleError">
3116- <summary>
3117- The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
3118- standard error output stream.
3119- </summary>
3120- <remarks>
3121- <para>
3122- The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
3123- standard error output stream.
3124- </para>
3125- </remarks>
3126- </member>
31272844 <member name="M:log4net.Appender.ConsoleAppender.#ctor">
31282845 <summary>
3129- Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class.
2846+ Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender" /> class.
31302847 </summary>
31312848 <remarks>
3132- The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write
2849+ The instance of the <see cref="T:log4net.Appender.ConsoleAppender" /> class is set up to write
31332850 to the standard output stream.
31342851 </remarks>
31352852 </member>
31362853 <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout)">
31372854 <summary>
3138- Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
2855+ Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender" /> class
31392856 with the specified layout.
31402857 </summary>
31412858 <param name="layout">the layout to use for this appender</param>
31422859 <remarks>
3143- The instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class is set up to write
2860+ The instance of the <see cref="T:log4net.Appender.ConsoleAppender" /> class is set up to write
31442861 to the standard output stream.
31452862 </remarks>
31462863 </member>
31472864 <member name="M:log4net.Appender.ConsoleAppender.#ctor(log4net.Layout.ILayout,System.Boolean)">
31482865 <summary>
3149- Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender"/> class
2866+ Initializes a new instance of the <see cref="T:log4net.Appender.ConsoleAppender" /> class
31502867 with the specified layout.
31512868 </summary>
31522869 <param name="layout">the layout to use for this appender</param>
31532870 <param name="writeToErrorStream">flag set to <c>true</c> to write to the console error stream</param>
31542871 <remarks>
3155- When <paramref name="writeToErrorStream"/> is set to <c>true</c>, output is written to
2872+ When <paramref name="writeToErrorStream" /> is set to <c>true</c>, output is written to
31562873 the standard error output stream. Otherwise, output is written to the standard
31572874 output stream.
31582875 </remarks>
31592876 </member>
2877+ <member name="P:log4net.Appender.ConsoleAppender.Target">
2878+ <summary>
2879+ Target is the value of the console output stream.
2880+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2881+ </summary>
2882+ <value>
2883+ Target is the value of the console output stream.
2884+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2885+ </value>
2886+ <remarks>
2887+ <para>
2888+ Target is the value of the console output stream.
2889+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2890+ </para>
2891+ </remarks>
2892+ </member>
31602893 <member name="M:log4net.Appender.ConsoleAppender.Append(log4net.Core.LoggingEvent)">
31612894 <summary>
31622895 This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
@@ -3171,33 +2904,41 @@
31712904 </para>
31722905 </remarks>
31732906 </member>
3174- <member name="P:log4net.Appender.ConsoleAppender.Target">
2907+ <member name="P:log4net.Appender.ConsoleAppender.RequiresLayout">
31752908 <summary>
3176- Target is the value of the console output stream.
3177- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2909+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
31782910 </summary>
3179- <value>
3180- Target is the value of the console output stream.
3181- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
3182- </value>
2911+ <value><c>true</c></value>
31832912 <remarks>
31842913 <para>
3185- Target is the value of the console output stream.
3186- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
2914+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
31872915 </para>
31882916 </remarks>
31892917 </member>
3190- <member name="P:log4net.Appender.ConsoleAppender.RequiresLayout">
2918+ <member name="F:log4net.Appender.ConsoleAppender.ConsoleOut">
31912919 <summary>
3192- This appender requires a <see cref="N:log4net.Layout"/> to be set.
2920+ The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
2921+ standard output stream.
31932922 </summary>
3194- <value><c>true</c></value>
31952923 <remarks>
31962924 <para>
3197- This appender requires a <see cref="N:log4net.Layout"/> to be set.
2925+ The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
2926+ standard output stream.
31982927 </para>
31992928 </remarks>
32002929 </member>
2930+ <member name="F:log4net.Appender.ConsoleAppender.ConsoleError">
2931+ <summary>
2932+ The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
2933+ standard error output stream.
2934+ </summary>
2935+ <remarks>
2936+ <para>
2937+ The <see cref="P:log4net.Appender.ConsoleAppender.Target"/> to use when writing to the Console
2938+ standard error output stream.
2939+ </para>
2940+ </remarks>
2941+ </member>
32012942 <member name="T:log4net.Appender.DebugAppender">
32022943 <summary>
32032944 Appends log events to the <see cref="T:System.Diagnostics.Debug"/> system.
@@ -3218,7 +2959,7 @@
32182959 </member>
32192960 <member name="M:log4net.Appender.DebugAppender.#ctor">
32202961 <summary>
3221- Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/>.
2962+ Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender" />.
32222963 </summary>
32232964 <remarks>
32242965 <para>
@@ -3228,7 +2969,7 @@
32282969 </member>
32292970 <member name="M:log4net.Appender.DebugAppender.#ctor(log4net.Layout.ILayout)">
32302971 <summary>
3231- Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender"/>
2972+ Initializes a new instance of the <see cref="T:log4net.Appender.DebugAppender" />
32322973 with a specified layout.
32332974 </summary>
32342975 <param name="layout">The layout to use with this appender.</param>
@@ -3238,6 +2979,46 @@
32382979 </para>
32392980 </remarks>
32402981 </member>
2982+ <member name="P:log4net.Appender.DebugAppender.ImmediateFlush">
2983+ <summary>
2984+ Gets or sets a value that indicates whether the appender will
2985+ flush at the end of each write.
2986+ </summary>
2987+ <remarks>
2988+ <para>The default behavior is to flush at the end of each
2989+ write. If the option is set to<c>false</c>, then the underlying
2990+ stream can defer writing to physical medium to a later time.
2991+ </para>
2992+ <para>
2993+ Avoiding the flush operation at the end of each append results
2994+ in a performance gain of 10 to 20 percent. However, there is safety
2995+ trade-off involved in skipping flushing. Indeed, when flushing is
2996+ skipped, then it is likely that the last few log events will not
2997+ be recorded on disk when the application exits. This is a high
2998+ price to pay even for a 20% performance gain.
2999+ </para>
3000+ </remarks>
3001+ </member>
3002+ <member name="P:log4net.Appender.DebugAppender.Category">
3003+ <summary>
3004+ Formats the category parameter sent to the Debug method.
3005+ </summary>
3006+ <remarks>
3007+ <para>
3008+ Defaults to a <see cref="T:log4net.Layout.PatternLayout"/> with %logger as the pattern which will use the logger name of the current
3009+ <see cref="T:log4net.Core.LoggingEvent"/> as the category parameter.
3010+ </para>
3011+ <para>
3012+ </para>
3013+ </remarks>
3014+ </member>
3015+ <member name="M:log4net.Appender.DebugAppender.Flush(System.Int32)">
3016+ <summary>
3017+ Flushes any buffered log data.
3018+ </summary>
3019+ <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
3020+ <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
3021+ </member>
32413022 <member name="M:log4net.Appender.DebugAppender.Append(log4net.Core.LoggingEvent)">
32423023 <summary>
32433024 Writes the logging event to the <see cref="T:System.Diagnostics.Debug"/> system.
@@ -3249,6 +3030,17 @@
32493030 If <see cref="P:log4net.Appender.DebugAppender.ImmediateFlush"/> is <c>true</c> then the <see cref="M:System.Diagnostics.Debug.Flush"/>
32503031 is called.
32513032 </para>
3033+ </remarks>
3034+ </member>
3035+ <member name="P:log4net.Appender.DebugAppender.RequiresLayout">
3036+ <summary>
3037+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
3038+ </summary>
3039+ <value><c>true</c></value>
3040+ <remarks>
3041+ <para>
3042+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
3043+ </para>
32523044 </remarks>
32533045 </member>
32543046 <member name="F:log4net.Appender.DebugAppender.m_immediateFlush">
@@ -3268,37 +3060,11 @@
32683060 The default value is <c>true</c>.</para>
32693061 </remarks>
32703062 </member>
3271- <member name="P:log4net.Appender.DebugAppender.ImmediateFlush">
3063+ <member name="F:log4net.Appender.DebugAppender.m_category">
32723064 <summary>
3273- Gets or sets a value that indicates whether the appender will
3274- flush at the end of each write.
3065+ Defaults to a <see cref="T:log4net.Layout.PatternLayout"/> with %logger as the pattern.
32753066 </summary>
3276- <remarks>
3277- <para>The default behavior is to flush at the end of each
3278- write. If the option is set to<c>false</c>, then the underlying
3279- stream can defer writing to physical medium to a later time.
3280- </para>
3281- <para>
3282- Avoiding the flush operation at the end of each append results
3283- in a performance gain of 10 to 20 percent. However, there is safety
3284- trade-off involved in skipping flushing. Indeed, when flushing is
3285- skipped, then it is likely that the last few log events will not
3286- be recorded on disk when the application exits. This is a high
3287- price to pay even for a 20% performance gain.
3288- </para>
3289- </remarks>
32903067 </member>
3291- <member name="P:log4net.Appender.DebugAppender.RequiresLayout">
3292- <summary>
3293- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3294- </summary>
3295- <value><c>true</c></value>
3296- <remarks>
3297- <para>
3298- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3299- </para>
3300- </remarks>
3301- </member>
33023068 <member name="T:log4net.Appender.EventLogAppender">
33033069 <summary>
33043070 Writes events to the system event log.
@@ -3353,7 +3119,7 @@
33533119 </member>
33543120 <member name="M:log4net.Appender.EventLogAppender.#ctor">
33553121 <summary>
3356- Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class.
3122+ Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender" /> class.
33573123 </summary>
33583124 <remarks>
33593125 <para>
@@ -3363,10 +3129,10 @@
33633129 </member>
33643130 <member name="M:log4net.Appender.EventLogAppender.#ctor(log4net.Layout.ILayout)">
33653131 <summary>
3366- Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender"/> class
3367- with the specified <see cref="T:log4net.Layout.ILayout"/>.
3132+ Initializes a new instance of the <see cref="T:log4net.Appender.EventLogAppender" /> class
3133+ with the specified <see cref="T:log4net.Layout.ILayout" />.
33683134 </summary>
3369- <param name="layout">The <see cref="T:log4net.Layout.ILayout"/> to use with this appender.</param>
3135+ <param name="layout">The <see cref="T:log4net.Layout.ILayout" /> to use with this appender.</param>
33703136 <remarks>
33713137 <para>
33723138 Obsolete constructor.
@@ -3373,6 +3139,53 @@
33733139 </para>
33743140 </remarks>
33753141 </member>
3142+ <member name="P:log4net.Appender.EventLogAppender.LogName">
3143+ <summary>
3144+ The name of the log where messages will be stored.
3145+ </summary>
3146+ <value>
3147+ The string name of the log where messages will be stored.
3148+ </value>
3149+ <remarks>
3150+ <para>This is the name of the log as it appears in the Event Viewer
3151+ tree. The default value is to log into the <c>Application</c>
3152+ log, this is where most applications write their events. However
3153+ if you need a separate log for your application (or applications)
3154+ then you should set the <see cref="P:log4net.Appender.EventLogAppender.LogName"/> appropriately.</para>
3155+ <para>This should not be used to distinguish your event log messages
3156+ from those of other applications, the <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>
3157+ property should be used to distinguish events. This property should be
3158+ used to group together events into a single log.
3159+ </para>
3160+ </remarks>
3161+ </member>
3162+ <member name="P:log4net.Appender.EventLogAppender.ApplicationName">
3163+ <summary>
3164+ Property used to set the Application name. This appears in the
3165+ event logs when logging.
3166+ </summary>
3167+ <value>
3168+ The string used to distinguish events from different sources.
3169+ </value>
3170+ <remarks>
3171+ Sets the event log source property.
3172+ </remarks>
3173+ </member>
3174+ <member name="P:log4net.Appender.EventLogAppender.MachineName">
3175+ <summary>
3176+ This property is used to return the name of the computer to use
3177+ when accessing the event logs. Currently, this is the current
3178+ computer, denoted by a dot "."
3179+ </summary>
3180+ <value>
3181+ The string name of the machine holding the event log that
3182+ will be logged into.
3183+ </value>
3184+ <remarks>
3185+ This property cannot be changed. It is currently set to '.'
3186+ i.e. the local machine. This may be changed in future.
3187+ </remarks>
3188+ </member>
33763189 <member name="M:log4net.Appender.EventLogAppender.AddMapping(log4net.Appender.EventLogAppender.Level2EventLogEntryType)">
33773190 <summary>
33783191 Add a mapping of level to <see cref="T:System.Diagnostics.EventLogEntryType"/> - done by the config file
@@ -3385,6 +3198,51 @@
33853198 </para>
33863199 </remarks>
33873200 </member>
3201+ <member name="P:log4net.Appender.EventLogAppender.SecurityContext">
3202+ <summary>
3203+ Gets or sets the <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
3204+ </summary>
3205+ <value>
3206+ The <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
3207+ </value>
3208+ <remarks>
3209+ <para>
3210+ The system security context used to write to the EventLog.
3211+ </para>
3212+ <para>
3213+ Unless a <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> specified here for this appender
3214+ the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
3215+ security context to use. The default behavior is to use the security context
3216+ of the current thread.
3217+ </para>
3218+ </remarks>
3219+ </member>
3220+ <member name="P:log4net.Appender.EventLogAppender.EventId">
3221+ <summary>
3222+ Gets or sets the <c>EventId</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
3223+ </summary>
3224+ <remarks>
3225+ <para>
3226+ The <c>EventID</c> of the event log entry will normally be
3227+ set using the <c>EventID</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
3228+ on the <see cref="T:log4net.Core.LoggingEvent"/>.
3229+ This property provides the fallback value which defaults to 0.
3230+ </para>
3231+ </remarks>
3232+ </member>
3233+ <member name="P:log4net.Appender.EventLogAppender.Category">
3234+ <summary>
3235+ Gets or sets the <c>Category</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
3236+ </summary>
3237+ <remarks>
3238+ <para>
3239+ The <c>Category</c> of the event log entry will normally be
3240+ set using the <c>Category</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
3241+ on the <see cref="T:log4net.Core.LoggingEvent"/>.
3242+ This property provides the fallback value which defaults to 0.
3243+ </para>
3244+ </remarks>
3245+ </member>
33883246 <member name="M:log4net.Appender.EventLogAppender.ActivateOptions">
33893247 <summary>
33903248 Initialize the appender based on the options set
@@ -3429,6 +3287,17 @@
34293287 </para>
34303288 </remarks>
34313289 </member>
3290+ <member name="P:log4net.Appender.EventLogAppender.RequiresLayout">
3291+ <summary>
3292+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
3293+ </summary>
3294+ <value><c>true</c></value>
3295+ <remarks>
3296+ <para>
3297+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
3298+ </para>
3299+ </remarks>
3300+ </member>
34323301 <member name="M:log4net.Appender.EventLogAppender.GetEntryType(log4net.Core.Level)">
34333302 <summary>
34343303 Get the equivalent <see cref="T:System.Diagnostics.EventLogEntryType"/> for a <see cref="T:log4net.Core.Level"/> <paramref name="level"/>
@@ -3480,6 +3349,28 @@
34803349 The event category to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
34813350 </summary>
34823351 </member>
3352+ <member name="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType">
3353+ <summary>
3354+ A class to act as a mapping between the level that a logging call is made at and
3355+ the color it should be displayed as.
3356+ </summary>
3357+ <remarks>
3358+ <para>
3359+ Defines the mapping between a level and its event log entry type.
3360+ </para>
3361+ </remarks>
3362+ </member>
3363+ <member name="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType">
3364+ <summary>
3365+ The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
3366+ </summary>
3367+ <remarks>
3368+ <para>
3369+ Required property.
3370+ The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
3371+ </para>
3372+ </remarks>
3373+ </member>
34833374 <member name="F:log4net.Appender.EventLogAppender.declaringType">
34843375 <summary>
34853376 The fully qualified type of the EventLogAppender class.
@@ -3552,131 +3443,6 @@
35523443 </summary>
35533444 <returns></returns>
35543445 </member>
3555- <member name="P:log4net.Appender.EventLogAppender.LogName">
3556- <summary>
3557- The name of the log where messages will be stored.
3558- </summary>
3559- <value>
3560- The string name of the log where messages will be stored.
3561- </value>
3562- <remarks>
3563- <para>This is the name of the log as it appears in the Event Viewer
3564- tree. The default value is to log into the <c>Application</c>
3565- log, this is where most applications write their events. However
3566- if you need a separate log for your application (or applications)
3567- then you should set the <see cref="P:log4net.Appender.EventLogAppender.LogName"/> appropriately.</para>
3568- <para>This should not be used to distinguish your event log messages
3569- from those of other applications, the <see cref="P:log4net.Appender.EventLogAppender.ApplicationName"/>
3570- property should be used to distinguish events. This property should be
3571- used to group together events into a single log.
3572- </para>
3573- </remarks>
3574- </member>
3575- <member name="P:log4net.Appender.EventLogAppender.ApplicationName">
3576- <summary>
3577- Property used to set the Application name. This appears in the
3578- event logs when logging.
3579- </summary>
3580- <value>
3581- The string used to distinguish events from different sources.
3582- </value>
3583- <remarks>
3584- Sets the event log source property.
3585- </remarks>
3586- </member>
3587- <member name="P:log4net.Appender.EventLogAppender.MachineName">
3588- <summary>
3589- This property is used to return the name of the computer to use
3590- when accessing the event logs. Currently, this is the current
3591- computer, denoted by a dot "."
3592- </summary>
3593- <value>
3594- The string name of the machine holding the event log that
3595- will be logged into.
3596- </value>
3597- <remarks>
3598- This property cannot be changed. It is currently set to '.'
3599- i.e. the local machine. This may be changed in future.
3600- </remarks>
3601- </member>
3602- <member name="P:log4net.Appender.EventLogAppender.SecurityContext">
3603- <summary>
3604- Gets or sets the <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
3605- </summary>
3606- <value>
3607- The <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> used to write to the EventLog.
3608- </value>
3609- <remarks>
3610- <para>
3611- The system security context used to write to the EventLog.
3612- </para>
3613- <para>
3614- Unless a <see cref="P:log4net.Appender.EventLogAppender.SecurityContext"/> specified here for this appender
3615- the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
3616- security context to use. The default behavior is to use the security context
3617- of the current thread.
3618- </para>
3619- </remarks>
3620- </member>
3621- <member name="P:log4net.Appender.EventLogAppender.EventId">
3622- <summary>
3623- Gets or sets the <c>EventId</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
3624- </summary>
3625- <remarks>
3626- <para>
3627- The <c>EventID</c> of the event log entry will normally be
3628- set using the <c>EventID</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
3629- on the <see cref="T:log4net.Core.LoggingEvent"/>.
3630- This property provides the fallback value which defaults to 0.
3631- </para>
3632- </remarks>
3633- </member>
3634- <member name="P:log4net.Appender.EventLogAppender.Category">
3635- <summary>
3636- Gets or sets the <c>Category</c> to use unless one is explicitly specified via the <c>LoggingEvent</c>'s properties.
3637- </summary>
3638- <remarks>
3639- <para>
3640- The <c>Category</c> of the event log entry will normally be
3641- set using the <c>Category</c> property (<see cref="P:log4net.Core.LoggingEvent.Properties"/>)
3642- on the <see cref="T:log4net.Core.LoggingEvent"/>.
3643- This property provides the fallback value which defaults to 0.
3644- </para>
3645- </remarks>
3646- </member>
3647- <member name="P:log4net.Appender.EventLogAppender.RequiresLayout">
3648- <summary>
3649- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3650- </summary>
3651- <value><c>true</c></value>
3652- <remarks>
3653- <para>
3654- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3655- </para>
3656- </remarks>
3657- </member>
3658- <member name="T:log4net.Appender.EventLogAppender.Level2EventLogEntryType">
3659- <summary>
3660- A class to act as a mapping between the level that a logging call is made at and
3661- the color it should be displayed as.
3662- </summary>
3663- <remarks>
3664- <para>
3665- Defines the mapping between a level and its event log entry type.
3666- </para>
3667- </remarks>
3668- </member>
3669- <member name="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType">
3670- <summary>
3671- The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
3672- </summary>
3673- <remarks>
3674- <para>
3675- Required property.
3676- The <see cref="P:log4net.Appender.EventLogAppender.Level2EventLogEntryType.EventLogEntryType"/> for this entry
3677- </para>
3678- </remarks>
3679- </member>
36803446 <member name="T:log4net.Appender.FileAppender">
36813447 <summary>
36823448 Appends logging events to a file.
@@ -3727,549 +3493,371 @@
37273493 <author>Douglas de la Torre</author>
37283494 <author>Niall Daley</author>
37293495 </member>
3730- <member name="T:log4net.Appender.TextWriterAppender">
3496+ <member name="T:log4net.Appender.FileAppender.LockingStream">
37313497 <summary>
3732- Sends logging events to a <see cref="T:System.IO.TextWriter"/>.
3498+ Write only <see cref="T:System.IO.Stream"/> that uses the <see cref="T:log4net.Appender.FileAppender.LockingModelBase"/>
3499+ to manage access to an underlying resource.
37333500 </summary>
3734- <remarks>
3735- <para>
3736- An Appender that writes to a <see cref="T:System.IO.TextWriter"/>.
3737- </para>
3738- <para>
3739- This appender may be used stand alone if initialized with an appropriate
3740- writer, however it is typically used as a base class for an appender that
3741- can open a <see cref="T:System.IO.TextWriter"/> to write to.
3742- </para>
3743- </remarks>
3744- <author>Nicko Cadell</author>
3745- <author>Gert Driesen</author>
3746- <author>Douglas de la Torre</author>
37473501 </member>
3748- <member name="M:log4net.Appender.TextWriterAppender.#ctor">
3502+ <member name="M:log4net.Appender.FileAppender.LockingStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
37493503 <summary>
3750- Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class.
3504+ True asynchronous writes are not supported, the implementation forces a synchronous write.
37513505 </summary>
3752- <remarks>
3753- <para>
3754- Default constructor.
3755- </para>
3756- </remarks>
37573506 </member>
3758- <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.Stream)">
3507+ <member name="T:log4net.Appender.FileAppender.LockingModelBase">
37593508 <summary>
3760- Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and
3761- sets the output destination to a new <see cref="T:System.IO.StreamWriter"/> initialized
3762- with the specified <see cref="T:System.IO.Stream"/>.
3509+ Locking model base class
37633510 </summary>
3764- <param name="layout">The layout to use with this appender.</param>
3765- <param name="os">The <see cref="T:System.IO.Stream"/> to output to.</param>
37663511 <remarks>
37673512 <para>
3768- Obsolete constructor.
3513+ Base class for the locking models available to the <see cref="T:log4net.Appender.FileAppender"/> derived loggers.
37693514 </para>
37703515 </remarks>
37713516 </member>
3772- <member name="M:log4net.Appender.TextWriterAppender.#ctor(log4net.Layout.ILayout,System.IO.TextWriter)">
3517+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
37733518 <summary>
3774- Initializes a new instance of the <see cref="T:log4net.Appender.TextWriterAppender"/> class and sets
3775- the output destination to the specified <see cref="T:System.IO.StreamWriter"/>.
3519+ Open the output file
37763520 </summary>
3777- <param name="layout">The layout to use with this appender</param>
3778- <param name="writer">The <see cref="T:System.IO.TextWriter"/> to output to</param>
3521+ <param name="filename">The filename to use</param>
3522+ <param name="append">Whether to append to the file, or overwrite</param>
3523+ <param name="encoding">The encoding to use</param>
37793524 <remarks>
3780- The <see cref="T:System.IO.TextWriter"/> must have been previously opened.
3781- </remarks>
3782- <remarks>
37833525 <para>
3784- Obsolete constructor.
3526+ Open the file specified and prepare for logging.
3527+ No writes will be made until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called.
3528+ Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/>,
3529+ <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile"/>.
37853530 </para>
37863531 </remarks>
37873532 </member>
3788- <member name="M:log4net.Appender.TextWriterAppender.PreAppendCheck">
3533+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile">
37893534 <summary>
3790- This method determines if there is a sense in attempting to append.
3535+ Close the file
37913536 </summary>
37923537 <remarks>
37933538 <para>
3794- This method checks if an output target has been set and if a
3795- layout has been set.
3539+ Close the file. No further writes will be made.
37963540 </para>
37973541 </remarks>
3798- <returns><c>false</c> if any of the preconditions fail.</returns>
37993542 </member>
3800- <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent)">
3543+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.ActivateOptions">
38013544 <summary>
3802- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
3803- method.
3545+ Initializes all resources used by this locking model.
38043546 </summary>
3805- <param name="loggingEvent">The event to log.</param>
3806- <remarks>
3807- <para>
3808- Writes a log statement to the output stream if the output stream exists
3809- and is writable.
3810- </para>
3811- <para>
3812- The format of the output will depend on the appender's layout.
3813- </para>
3814- </remarks>
38153547 </member>
3816- <member name="M:log4net.Appender.TextWriterAppender.Append(log4net.Core.LoggingEvent[])">
3548+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.OnClose">
38173549 <summary>
3818- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent[])"/>
3819- method.
3550+ Disposes all resources that were initialized by this locking model.
38203551 </summary>
3821- <param name="loggingEvents">The array of events to log.</param>
3822- <remarks>
3823- <para>
3824- This method writes all the bulk logged events to the output writer
3825- before flushing the stream.
3826- </para>
3827- </remarks>
38283552 </member>
3829- <member name="M:log4net.Appender.TextWriterAppender.OnClose">
3553+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock">
38303554 <summary>
3831- Close this appender instance. The underlying stream or writer is also closed.
3555+ Acquire the lock on the file
38323556 </summary>
3557+ <returns>A stream that is ready to be written to.</returns>
38333558 <remarks>
3834- Closed appenders cannot be reused.
3559+ <para>
3560+ Acquire the lock on the file in preparation for writing to it.
3561+ Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/>
3562+ must be called to release the lock on the output file.
3563+ </para>
38353564 </remarks>
38363565 </member>
3837- <member name="M:log4net.Appender.TextWriterAppender.WriteFooterAndCloseWriter">
3566+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock">
38383567 <summary>
3839- Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
3568+ Release the lock on the file
38403569 </summary>
38413570 <remarks>
38423571 <para>
3843- Writes the footer and closes the underlying <see cref="T:System.IO.TextWriter"/>.
3572+ Release the lock on the file. No further writes will be made to the
3573+ stream until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called again.
38443574 </para>
38453575 </remarks>
38463576 </member>
3847- <member name="M:log4net.Appender.TextWriterAppender.CloseWriter">
3577+ <member name="P:log4net.Appender.FileAppender.LockingModelBase.CurrentAppender">
38483578 <summary>
3849- Closes the underlying <see cref="T:System.IO.TextWriter"/>.
3579+ Gets or sets the <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
38503580 </summary>
3581+ <value>
3582+ The <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
3583+ </value>
38513584 <remarks>
38523585 <para>
3853- Closes the underlying <see cref="T:System.IO.TextWriter"/>.
3586+ The file appender this locking model is attached to and working on
3587+ behalf of.
38543588 </para>
3589+ <para>
3590+ The file appender is used to locate the security context and the error handler to use.
3591+ </para>
3592+ <para>
3593+ The value of this property will be set before <see cref="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)"/> is
3594+ called.
3595+ </para>
38553596 </remarks>
38563597 </member>
3857- <member name="M:log4net.Appender.TextWriterAppender.Reset">
3598+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.CreateStream(System.String,System.Boolean,System.IO.FileShare)">
38583599 <summary>
3859- Clears internal references to the underlying <see cref="T:System.IO.TextWriter"/>
3860- and other variables.
3600+ Helper method that creates a FileStream under CurrentAppender's SecurityContext.
38613601 </summary>
38623602 <remarks>
38633603 <para>
3864- Subclasses can override this method for an alternate closing behavior.
3604+ Typically called during OpenFile or AcquireLock.
38653605 </para>
3606+ <para>
3607+ If the directory portion of the <paramref name="filename"/> does not exist, it is created
3608+ via Directory.CreateDirecctory.
3609+ </para>
38663610 </remarks>
3611+ <param name="filename"></param>
3612+ <param name="append"></param>
3613+ <param name="fileShare"></param>
3614+ <returns></returns>
38673615 </member>
3868- <member name="M:log4net.Appender.TextWriterAppender.WriteFooter">
3616+ <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseStream(System.IO.Stream)">
38693617 <summary>
3870- Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
3618+ Helper method to close <paramref name="stream"/> under CurrentAppender's SecurityContext.
38713619 </summary>
38723620 <remarks>
3873- <para>
3874- Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
3875- </para>
3621+ Does not set <paramref name="stream"/> to null.
38763622 </remarks>
3623+ <param name="stream"></param>
38773624 </member>
3878- <member name="M:log4net.Appender.TextWriterAppender.WriteHeader">
3625+ <member name="T:log4net.Appender.FileAppender.ExclusiveLock">
38793626 <summary>
3880- Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
3627+ Hold an exclusive lock on the output file
38813628 </summary>
38823629 <remarks>
38833630 <para>
3884- Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
3631+ Open the file once for writing and hold it open until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/> is called.
3632+ Maintains an exclusive lock on the file during this time.
38853633 </para>
38863634 </remarks>
38873635 </member>
3888- <member name="M:log4net.Appender.TextWriterAppender.PrepareWriter">
3636+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
38893637 <summary>
3890- Called to allow a subclass to lazily initialize the writer
3638+ Open the file specified and prepare for logging.
38913639 </summary>
3640+ <param name="filename">The filename to use</param>
3641+ <param name="append">Whether to append to the file, or overwrite</param>
3642+ <param name="encoding">The encoding to use</param>
38923643 <remarks>
38933644 <para>
3894- This method is called when an event is logged and the <see cref="P:log4net.Appender.TextWriterAppender.Writer"/> or
3895- <see cref="P:log4net.Appender.TextWriterAppender.QuietWriter"/> have not been set. This allows a subclass to
3896- attempt to initialize the writer multiple times.
3645+ Open the file specified and prepare for logging.
3646+ No writes will be made until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/> is called.
3647+ Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/>,
3648+ <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/>.
38973649 </para>
38983650 </remarks>
38993651 </member>
3900- <member name="F:log4net.Appender.TextWriterAppender.m_qtw">
3652+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile">
39013653 <summary>
3902- This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
3903- will be written to.
3654+ Close the file
39043655 </summary>
3905- </member>
3906- <member name="F:log4net.Appender.TextWriterAppender.m_immediateFlush">
3907- <summary>
3908- Immediate flush means that the underlying <see cref="T:System.IO.TextWriter"/>
3909- or output stream will be flushed at the end of each append operation.
3910- </summary>
39113656 <remarks>
39123657 <para>
3913- Immediate flush is slower but ensures that each append request is
3914- actually written. If <see cref="P:log4net.Appender.TextWriterAppender.ImmediateFlush"/> is set to
3915- <c>false</c>, then there is a good chance that the last few
3916- logging events are not actually persisted if and when the application
3917- crashes.
3658+ Close the file. No further writes will be made.
39183659 </para>
3919- <para>
3920- The default value is <c>true</c>.
3921- </para>
39223660 </remarks>
39233661 </member>
3924- <member name="F:log4net.Appender.TextWriterAppender.declaringType">
3662+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock">
39253663 <summary>
3926- The fully qualified type of the TextWriterAppender class.
3664+ Acquire the lock on the file
39273665 </summary>
3666+ <returns>A stream that is ready to be written to.</returns>
39283667 <remarks>
3929- Used by the internal logger to record the Type of the
3930- log message.
3931- </remarks>
3932- </member>
3933- <member name="P:log4net.Appender.TextWriterAppender.ImmediateFlush">
3934- <summary>
3935- Gets or set whether the appender will flush at the end
3936- of each append operation.
3937- </summary>
3938- <value>
39393668 <para>
3940- The default behavior is to flush at the end of each
3941- append operation.
3669+ Does nothing. The lock is already taken
39423670 </para>
3943- <para>
3944- If this option is set to <c>false</c>, then the underlying
3945- stream can defer persisting the logging event to a later
3946- time.
3947- </para>
3948- </value>
3949- <remarks>
3950- Avoiding the flush operation at the end of each append results in
3951- a performance gain of 10 to 20 percent. However, there is safety
3952- trade-off involved in skipping flushing. Indeed, when flushing is
3953- skipped, then it is likely that the last few log events will not
3954- be recorded on disk when the application exits. This is a high
3955- price to pay even for a 20% performance gain.
39563671 </remarks>
39573672 </member>
3958- <member name="P:log4net.Appender.TextWriterAppender.Writer">
3673+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock">
39593674 <summary>
3960- Sets the <see cref="T:System.IO.TextWriter"/> where the log output will go.
3675+ Release the lock on the file
39613676 </summary>
39623677 <remarks>
39633678 <para>
3964- The specified <see cref="T:System.IO.TextWriter"/> must be open and writable.
3679+ Does nothing. The lock will be released when the file is closed.
39653680 </para>
3966- <para>
3967- The <see cref="T:System.IO.TextWriter"/> will be closed when the appender
3968- instance is closed.
3969- </para>
3970- <para>
3971- <b>Note:</b> Logging to an unopened <see cref="T:System.IO.TextWriter"/> will fail.
3972- </para>
39733681 </remarks>
39743682 </member>
3975- <member name="P:log4net.Appender.TextWriterAppender.ErrorHandler">
3683+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.ActivateOptions">
39763684 <summary>
3977- Gets or set the <see cref="T:log4net.Core.IErrorHandler"/> and the underlying
3978- <see cref="T:log4net.Util.QuietTextWriter"/>, if any, for this appender.
3685+ Initializes all resources used by this locking model.
39793686 </summary>
3980- <value>
3981- The <see cref="T:log4net.Core.IErrorHandler"/> for this appender.
3982- </value>
39833687 </member>
3984- <member name="P:log4net.Appender.TextWriterAppender.RequiresLayout">
3688+ <member name="M:log4net.Appender.FileAppender.ExclusiveLock.OnClose">
39853689 <summary>
3986- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3690+ Disposes all resources that were initialized by this locking model.
39873691 </summary>
3988- <value><c>true</c></value>
3989- <remarks>
3990- <para>
3991- This appender requires a <see cref="N:log4net.Layout"/> to be set.
3992- </para>
3993- </remarks>
39943692 </member>
3995- <member name="P:log4net.Appender.TextWriterAppender.QuietWriter">
3693+ <member name="T:log4net.Appender.FileAppender.MinimalLock">
39963694 <summary>
3997- Gets or sets the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
3998- will be written to.
3695+ Acquires the file lock for each write
39993696 </summary>
4000- <value>
4001- The <see cref="T:log4net.Util.QuietTextWriter"/> where logging events are written.
4002- </value>
40033697 <remarks>
40043698 <para>
4005- This is the <see cref="T:log4net.Util.QuietTextWriter"/> where logging events
4006- will be written to.
3699+ Opens the file once for each <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>/<see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> cycle,
3700+ thus holding the lock for the minimal amount of time. This method of locking
3701+ is considerably slower than <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> but allows
3702+ other processes to move/delete the log file whilst logging continues.
40073703 </para>
40083704 </remarks>
40093705 </member>
4010- <member name="M:log4net.Appender.FileAppender.#ctor">
3706+ <member name="M:log4net.Appender.FileAppender.MinimalLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
40113707 <summary>
4012- Default constructor
3708+ Prepares to open the file when the first message is logged.
40133709 </summary>
3710+ <param name="filename">The filename to use</param>
3711+ <param name="append">Whether to append to the file, or overwrite</param>
3712+ <param name="encoding">The encoding to use</param>
40143713 <remarks>
40153714 <para>
4016- Default constructor
3715+ Open the file specified and prepare for logging.
3716+ No writes will be made until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called.
3717+ Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>,
3718+ <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.MinimalLock.CloseFile"/>.
40173719 </para>
40183720 </remarks>
40193721 </member>
4020- <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String,System.Boolean)">
3722+ <member name="M:log4net.Appender.FileAppender.MinimalLock.CloseFile">
40213723 <summary>
4022- Construct a new appender using the layout, file and append mode.
3724+ Close the file
40233725 </summary>
4024- <param name="layout">the layout to use with this appender</param>
4025- <param name="filename">the full path to the file to write to</param>
4026- <param name="append">flag to indicate if the file should be appended to</param>
40273726 <remarks>
40283727 <para>
4029- Obsolete constructor.
3728+ Close the file. No further writes will be made.
40303729 </para>
40313730 </remarks>
40323731 </member>
4033- <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String)">
3732+ <member name="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock">
40343733 <summary>
4035- Construct a new appender using the layout and file specified.
4036- The file will be appended to.
3734+ Acquire the lock on the file
40373735 </summary>
4038- <param name="layout">the layout to use with this appender</param>
4039- <param name="filename">the full path to the file to write to</param>
3736+ <returns>A stream that is ready to be written to.</returns>
40403737 <remarks>
40413738 <para>
4042- Obsolete constructor.
3739+ Acquire the lock on the file in preparation for writing to it.
3740+ Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/>
3741+ must be called to release the lock on the output file.
40433742 </para>
40443743 </remarks>
40453744 </member>
4046- <member name="M:log4net.Appender.FileAppender.ActivateOptions">
3745+ <member name="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock">
40473746 <summary>
4048- Activate the options on the file appender.
3747+ Release the lock on the file
40493748 </summary>
40503749 <remarks>
40513750 <para>
4052- This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
4053- activation scheme. The <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> method must
4054- be called on this object after the configuration properties have
4055- been set. Until <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> is called this
4056- object is in an undefined state and must not be used.
3751+ Release the lock on the file. No further writes will be made to the
3752+ stream until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called again.
40573753 </para>
4058- <para>
4059- If any of the configuration properties are modified then
4060- <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> must be called again.
4061- </para>
4062- <para>
4063- This will cause the file to be opened.
4064- </para>
40653754 </remarks>
40663755 </member>
4067- <member name="M:log4net.Appender.FileAppender.Reset">
3756+ <member name="M:log4net.Appender.FileAppender.MinimalLock.ActivateOptions">
40683757 <summary>
4069- Closes any previously opened file and calls the parent's <see cref="M:log4net.Appender.TextWriterAppender.Reset"/>.
3758+ Initializes all resources used by this locking model.
40703759 </summary>
4071- <remarks>
4072- <para>
4073- Resets the filename and the file stream.
4074- </para>
4075- </remarks>
40763760 </member>
4077- <member name="M:log4net.Appender.FileAppender.PrepareWriter">
3761+ <member name="M:log4net.Appender.FileAppender.MinimalLock.OnClose">
40783762 <summary>
4079- Called to initialize the file writer
3763+ Disposes all resources that were initialized by this locking model.
40803764 </summary>
4081- <remarks>
4082- <para>
4083- Will be called for each logged message until the file is
4084- successfully opened.
4085- </para>
4086- </remarks>
40873765 </member>
4088- <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent)">
3766+ <member name="T:log4net.Appender.FileAppender.InterProcessLock">
40893767 <summary>
4090- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
4091- method.
3768+ Provides cross-process file locking.
40923769 </summary>
4093- <param name="loggingEvent">The event to log.</param>
4094- <remarks>
4095- <para>
4096- Writes a log statement to the output stream if the output stream exists
4097- and is writable.
4098- </para>
4099- <para>
4100- The format of the output will depend on the appender's layout.
4101- </para>
4102- </remarks>
3770+ <author>Ron Grabowski</author>
3771+ <author>Steve Wranovsky</author>
41033772 </member>
4104- <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent[])">
3773+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
41053774 <summary>
4106- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent[])"/>
4107- method.
3775+ Open the file specified and prepare for logging.
41083776 </summary>
4109- <param name="loggingEvents">The array of events to log.</param>
3777+ <param name="filename">The filename to use</param>
3778+ <param name="append">Whether to append to the file, or overwrite</param>
3779+ <param name="encoding">The encoding to use</param>
41103780 <remarks>
41113781 <para>
4112- Acquires the output file locks once before writing all the events to
4113- the stream.
3782+ Open the file specified and prepare for logging.
3783+ No writes will be made until <see cref="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock"/> is called.
3784+ Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock"/>,
3785+ -<see cref="M:log4net.Appender.FileAppender.InterProcessLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.InterProcessLock.CloseFile"/>.
41143786 </para>
41153787 </remarks>
41163788 </member>
4117- <member name="M:log4net.Appender.FileAppender.WriteFooter">
3789+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.CloseFile">
41183790 <summary>
4119- Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
3791+ Close the file
41203792 </summary>
41213793 <remarks>
41223794 <para>
4123- Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
3795+ Close the file. No further writes will be made.
41243796 </para>
41253797 </remarks>
41263798 </member>
4127- <member name="M:log4net.Appender.FileAppender.WriteHeader">
3799+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock">
41283800 <summary>
4129- Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
3801+ Acquire the lock on the file
41303802 </summary>
3803+ <returns>A stream that is ready to be written to.</returns>
41313804 <remarks>
41323805 <para>
4133- Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
3806+ Does nothing. The lock is already taken
41343807 </para>
41353808 </remarks>
41363809 </member>
4137- <member name="M:log4net.Appender.FileAppender.CloseWriter">
3810+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.ReleaseLock">
41383811 <summary>
4139- Closes the underlying <see cref="T:System.IO.TextWriter"/>.
3812+ Releases the lock and allows others to acquire a lock.
41403813 </summary>
4141- <remarks>
4142- <para>
4143- Closes the underlying <see cref="T:System.IO.TextWriter"/>.
4144- </para>
4145- </remarks>
41463814 </member>
4147- <member name="M:log4net.Appender.FileAppender.CloseFile">
3815+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.ActivateOptions">
41483816 <summary>
4149- Closes the previously opened file.
3817+ Initializes all resources used by this locking model.
41503818 </summary>
4151- <remarks>
4152- <para>
4153- Writes the <see cref="P:log4net.Layout.ILayout.Footer"/> to the file and then
4154- closes the file.
4155- </para>
4156- </remarks>
41573819 </member>
4158- <member name="M:log4net.Appender.FileAppender.SafeOpenFile(System.String,System.Boolean)">
3820+ <member name="M:log4net.Appender.FileAppender.InterProcessLock.OnClose">
41593821 <summary>
4160- Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
3822+ Disposes all resources that were initialized by this locking model.
41613823 </summary>
4162- <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
4163- <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
4164- <remarks>
4165- <para>
4166- Calls <see cref="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)"/> but guarantees not to throw an exception.
4167- Errors are passed to the <see cref="P:log4net.Appender.TextWriterAppender.ErrorHandler"/>.
4168- </para>
4169- </remarks>
41703824 </member>
4171- <member name="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)">
3825+ <member name="M:log4net.Appender.FileAppender.#ctor">
41723826 <summary>
4173- Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
3827+ Default constructor
41743828 </summary>
4175- <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
4176- <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
41773829 <remarks>
41783830 <para>
4179- If there was already an opened file, then the previous file
4180- is closed first.
3831+ Default constructor
41813832 </para>
4182- <para>
4183- This method will ensure that the directory structure
4184- for the <paramref name="fileName"/> specified exists.
4185- </para>
41863833 </remarks>
41873834 </member>
4188- <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)">
3835+ <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String,System.Boolean)">
41893836 <summary>
4190- Sets the quiet writer used for file output
3837+ Construct a new appender using the layout, file and append mode.
41913838 </summary>
4192- <param name="fileStream">the file stream that has been opened for writing</param>
3839+ <param name="layout">the layout to use with this appender</param>
3840+ <param name="filename">the full path to the file to write to</param>
3841+ <param name="append">flag to indicate if the file should be appended to</param>
41933842 <remarks>
41943843 <para>
4195- This implementation of <see cref="M:SetQWForFiles(Stream)"/> creates a <see cref="T:System.IO.StreamWriter"/>
4196- over the <paramref name="fileStream"/> and passes it to the
4197- <see cref="M:SetQWForFiles(TextWriter)"/> method.
3844+ Obsolete constructor.
41983845 </para>
4199- <para>
4200- This method can be overridden by sub classes that want to wrap the
4201- <see cref="T:System.IO.Stream"/> in some way, for example to encrypt the output
4202- data using a <c>System.Security.Cryptography.CryptoStream</c>.
4203- </para>
42043846 </remarks>
42053847 </member>
4206- <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)">
3848+ <member name="M:log4net.Appender.FileAppender.#ctor(log4net.Layout.ILayout,System.String)">
42073849 <summary>
4208- Sets the quiet writer being used.
3850+ Construct a new appender using the layout and file specified.
3851+ The file will be appended to.
42093852 </summary>
4210- <param name="writer">the writer over the file stream that has been opened for writing</param>
3853+ <param name="layout">the layout to use with this appender</param>
3854+ <param name="filename">the full path to the file to write to</param>
42113855 <remarks>
42123856 <para>
4213- This method can be overridden by sub classes that want to
4214- wrap the <see cref="T:System.IO.TextWriter"/> in some way.
3857+ Obsolete constructor.
42153858 </para>
42163859 </remarks>
42173860 </member>
4218- <member name="M:log4net.Appender.FileAppender.ConvertToFullPath(System.String)">
4219- <summary>
4220- Convert a path into a fully qualified path.
4221- </summary>
4222- <param name="path">The path to convert.</param>
4223- <returns>The fully qualified path.</returns>
4224- <remarks>
4225- <para>
4226- Converts the path specified to a fully
4227- qualified path. If the path is relative it is
4228- taken as relative from the application base
4229- directory.
4230- </para>
4231- </remarks>
4232- </member>
4233- <member name="F:log4net.Appender.FileAppender.m_appendToFile">
4234- <summary>
4235- Flag to indicate if we should append to the file
4236- or overwrite the file. The default is to append.
4237- </summary>
4238- </member>
4239- <member name="F:log4net.Appender.FileAppender.m_fileName">
4240- <summary>
4241- The name of the log file.
4242- </summary>
4243- </member>
4244- <member name="F:log4net.Appender.FileAppender.m_encoding">
4245- <summary>
4246- The encoding to use for the file stream.
4247- </summary>
4248- </member>
4249- <member name="F:log4net.Appender.FileAppender.m_securityContext">
4250- <summary>
4251- The security context to use for privileged calls
4252- </summary>
4253- </member>
4254- <member name="F:log4net.Appender.FileAppender.m_stream">
4255- <summary>
4256- The stream to log to. Has added locking semantics
4257- </summary>
4258- </member>
4259- <member name="F:log4net.Appender.FileAppender.m_lockingModel">
4260- <summary>
4261- The locking model to use
4262- </summary>
4263- </member>
4264- <member name="F:log4net.Appender.FileAppender.declaringType">
4265- <summary>
4266- The fully qualified type of the FileAppender class.
4267- </summary>
4268- <remarks>
4269- Used by the internal logger to record the Type of the
4270- log message.
4271- </remarks>
4272- </member>
42733861 <member name="P:log4net.Appender.FileAppender.File">
42743862 <summary>
42753863 Gets or sets the path to the file that logging will be written to.
@@ -4352,357 +3940,238 @@
43523940 </para>
43533941 </remarks>
43543942 </member>
4355- <member name="T:log4net.Appender.FileAppender.LockingStream">
3943+ <member name="M:log4net.Appender.FileAppender.ActivateOptions">
43563944 <summary>
4357- Write only <see cref="T:System.IO.Stream"/> that uses the <see cref="T:log4net.Appender.FileAppender.LockingModelBase"/>
4358- to manage access to an underlying resource.
3945+ Activate the options on the file appender.
43593946 </summary>
4360- </member>
4361- <member name="M:log4net.Appender.FileAppender.LockingStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
4362- <summary>
4363- True asynchronous writes are not supported, the implementation forces a synchronous write.
4364- </summary>
4365- </member>
4366- <member name="T:log4net.Core.LogException">
4367- <summary>
4368- Exception base type for log4net.
4369- </summary>
43703947 <remarks>
43713948 <para>
4372- This type extends <see cref="T:System.ApplicationException"/>. It
4373- does not add any new functionality but does differentiate the
4374- type of exception being thrown.
3949+ This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
3950+ activation scheme. The <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> method must
3951+ be called on this object after the configuration properties have
3952+ been set. Until <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> is called this
3953+ object is in an undefined state and must not be used.
43753954 </para>
4376- </remarks>
4377- <author>Nicko Cadell</author>
4378- <author>Gert Driesen</author>
4379- </member>
4380- <member name="M:log4net.Core.LogException.#ctor">
4381- <summary>
4382- Constructor
4383- </summary>
4384- <remarks>
43853955 <para>
4386- Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class.
3956+ If any of the configuration properties are modified then
3957+ <see cref="M:log4net.Appender.FileAppender.ActivateOptions"/> must be called again.
43873958 </para>
4388- </remarks>
4389- </member>
4390- <member name="M:log4net.Core.LogException.#ctor(System.String)">
4391- <summary>
4392- Constructor
4393- </summary>
4394- <param name="message">A message to include with the exception.</param>
4395- <remarks>
43963959 <para>
4397- Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class with
4398- the specified message.
3960+ This will cause the file to be opened.
43993961 </para>
44003962 </remarks>
44013963 </member>
4402- <member name="M:log4net.Core.LogException.#ctor(System.String,System.Exception)">
3964+ <member name="M:log4net.Appender.FileAppender.Reset">
44033965 <summary>
4404- Constructor
3966+ Closes any previously opened file and calls the parent's <see cref="M:log4net.Appender.TextWriterAppender.Reset"/>.
44053967 </summary>
4406- <param name="message">A message to include with the exception.</param>
4407- <param name="innerException">A nested exception to include.</param>
44083968 <remarks>
44093969 <para>
4410- Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class
4411- with the specified message and inner exception.
3970+ Resets the filename and the file stream.
44123971 </para>
44133972 </remarks>
44143973 </member>
4415- <member name="M:log4net.Core.LogException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
3974+ <member name="M:log4net.Appender.FileAppender.OnClose">
44163975 <summary>
4417- Serialization constructor
3976+ Close this appender instance. The underlying stream or writer is also closed.
44183977 </summary>
4419- <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
4420- <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
4421- <remarks>
4422- <para>
4423- Initializes a new instance of the <see cref="T:log4net.Core.LogException"/> class
4424- with serialized data.
4425- </para>
4426- </remarks>
44273978 </member>
4428- <member name="T:log4net.Appender.FileAppender.LockingModelBase">
3979+ <member name="M:log4net.Appender.FileAppender.PrepareWriter">
44293980 <summary>
4430- Locking model base class
3981+ Called to initialize the file writer
44313982 </summary>
44323983 <remarks>
44333984 <para>
4434- Base class for the locking models available to the <see cref="T:log4net.Appender.FileAppender"/> derived loggers.
3985+ Will be called for each logged message until the file is
3986+ successfully opened.
44353987 </para>
44363988 </remarks>
44373989 </member>
4438- <member name="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
3990+ <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent)">
44393991 <summary>
4440- Open the output file
3992+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/>
3993+ method.
44413994 </summary>
4442- <param name="filename">The filename to use</param>
4443- <param name="append">Whether to append to the file, or overwrite</param>
4444- <param name="encoding">The encoding to use</param>
3995+ <param name="loggingEvent">The event to log.</param>
44453996 <remarks>
44463997 <para>
4447- Open the file specified and prepare for logging.
4448- No writes will be made until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called.
4449- Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/>,
4450- <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile"/>.
3998+ Writes a log statement to the output stream if the output stream exists
3999+ and is writable.
44514000 </para>
4452- </remarks>
4453- </member>
4454- <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseFile">
4455- <summary>
4456- Close the file
4457- </summary>
4458- <remarks>
44594001 <para>
4460- Close the file. No further writes will be made.
4002+ The format of the output will depend on the appender's layout.
44614003 </para>
44624004 </remarks>
44634005 </member>
4464- <member name="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock">
4006+ <member name="M:log4net.Appender.FileAppender.Append(log4net.Core.LoggingEvent[])">
44654007 <summary>
4466- Acquire the lock on the file
4008+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent[])"/>
4009+ method.
44674010 </summary>
4468- <returns>A stream that is ready to be written to.</returns>
4011+ <param name="loggingEvents">The array of events to log.</param>
44694012 <remarks>
44704013 <para>
4471- Acquire the lock on the file in preparation for writing to it.
4472- Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock"/>
4473- must be called to release the lock on the output file.
4014+ Acquires the output file locks once before writing all the events to
4015+ the stream.
44744016 </para>
44754017 </remarks>
44764018 </member>
4477- <member name="M:log4net.Appender.FileAppender.LockingModelBase.ReleaseLock">
4019+ <member name="M:log4net.Appender.FileAppender.WriteFooter">
44784020 <summary>
4479- Release the lock on the file
4021+ Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
44804022 </summary>
44814023 <remarks>
44824024 <para>
4483- Release the lock on the file. No further writes will be made to the
4484- stream until <see cref="M:log4net.Appender.FileAppender.LockingModelBase.AcquireLock"/> is called again.
4025+ Writes a footer as produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Footer"/> property.
44854026 </para>
44864027 </remarks>
44874028 </member>
4488- <member name="M:log4net.Appender.FileAppender.LockingModelBase.CreateStream(System.String,System.Boolean,System.IO.FileShare)">
4029+ <member name="M:log4net.Appender.FileAppender.WriteHeader">
44894030 <summary>
4490- Helper method that creates a FileStream under CurrentAppender's SecurityContext.
4031+ Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
44914032 </summary>
44924033 <remarks>
44934034 <para>
4494- Typically called during OpenFile or AcquireLock.
4035+ Writes a header produced by the embedded layout's <see cref="P:log4net.Layout.ILayout.Header"/> property.
44954036 </para>
4496- <para>
4497- If the directory portion of the <paramref name="filename"/> does not exist, it is created
4498- via Directory.CreateDirecctory.
4499- </para>
45004037 </remarks>
4501- <param name="filename"></param>
4502- <param name="append"></param>
4503- <param name="fileShare"></param>
4504- <returns></returns>
45054038 </member>
4506- <member name="M:log4net.Appender.FileAppender.LockingModelBase.CloseStream(System.IO.Stream)">
4039+ <member name="M:log4net.Appender.FileAppender.CloseWriter">
45074040 <summary>
4508- Helper method to close <paramref name="stream"/> under CurrentAppender's SecurityContext.
4041+ Closes the underlying <see cref="T:System.IO.TextWriter"/>.
45094042 </summary>
45104043 <remarks>
4511- Does not set <paramref name="stream"/> to null.
4512- </remarks>
4513- <param name="stream"></param>
4514- </member>
4515- <member name="P:log4net.Appender.FileAppender.LockingModelBase.CurrentAppender">
4516- <summary>
4517- Gets or sets the <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
4518- </summary>
4519- <value>
4520- The <see cref="T:log4net.Appender.FileAppender"/> for this LockingModel
4521- </value>
4522- <remarks>
45234044 <para>
4524- The file appender this locking model is attached to and working on
4525- behalf of.
4045+ Closes the underlying <see cref="T:System.IO.TextWriter"/>.
45264046 </para>
4527- <para>
4528- The file appender is used to locate the security context and the error handler to use.
4529- </para>
4530- <para>
4531- The value of this property will be set before <see cref="M:log4net.Appender.FileAppender.LockingModelBase.OpenFile(System.String,System.Boolean,System.Text.Encoding)"/> is
4532- called.
4533- </para>
45344047 </remarks>
45354048 </member>
4536- <member name="T:log4net.Appender.FileAppender.ExclusiveLock">
4049+ <member name="M:log4net.Appender.FileAppender.CloseFile">
45374050 <summary>
4538- Hold an exclusive lock on the output file
4051+ Closes the previously opened file.
45394052 </summary>
45404053 <remarks>
45414054 <para>
4542- Open the file once for writing and hold it open until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/> is called.
4543- Maintains an exclusive lock on the file during this time.
4055+ Writes the <see cref="P:log4net.Layout.ILayout.Footer"/> to the file and then
4056+ closes the file.
45444057 </para>
45454058 </remarks>
45464059 </member>
4547- <member name="M:log4net.Appender.FileAppender.ExclusiveLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
4060+ <member name="M:log4net.Appender.FileAppender.SafeOpenFile(System.String,System.Boolean)">
45484061 <summary>
4549- Open the file specified and prepare for logging.
4062+ Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
45504063 </summary>
4551- <param name="filename">The filename to use</param>
4552- <param name="append">Whether to append to the file, or overwrite</param>
4553- <param name="encoding">The encoding to use</param>
4064+ <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
4065+ <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
45544066 <remarks>
45554067 <para>
4556- Open the file specified and prepare for logging.
4557- No writes will be made until <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/> is called.
4558- Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock"/>,
4559- <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile"/>.
4068+ Calls <see cref="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)"/> but guarantees not to throw an exception.
4069+ Errors are passed to the <see cref="P:log4net.Appender.TextWriterAppender.ErrorHandler"/>.
45604070 </para>
45614071 </remarks>
45624072 </member>
4563- <member name="M:log4net.Appender.FileAppender.ExclusiveLock.CloseFile">
4073+ <member name="M:log4net.Appender.FileAppender.OpenFile(System.String,System.Boolean)">
45644074 <summary>
4565- Close the file
4075+ Sets and <i>opens</i> the file where the log output will go. The specified file must be writable.
45664076 </summary>
4077+ <param name="fileName">The path to the log file. Must be a fully qualified path.</param>
4078+ <param name="append">If true will append to fileName. Otherwise will truncate fileName</param>
45674079 <remarks>
45684080 <para>
4569- Close the file. No further writes will be made.
4081+ If there was already an opened file, then the previous file
4082+ is closed first.
45704083 </para>
4571- </remarks>
4572- </member>
4573- <member name="M:log4net.Appender.FileAppender.ExclusiveLock.AcquireLock">
4574- <summary>
4575- Acquire the lock on the file
4576- </summary>
4577- <returns>A stream that is ready to be written to.</returns>
4578- <remarks>
45794084 <para>
4580- Does nothing. The lock is already taken
4085+ This method will ensure that the directory structure
4086+ for the <paramref name="fileName"/> specified exists.
45814087 </para>
45824088 </remarks>
45834089 </member>
4584- <member name="M:log4net.Appender.FileAppender.ExclusiveLock.ReleaseLock">
4090+ <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.Stream)">
45854091 <summary>
4586- Release the lock on the file
4092+ Sets the quiet writer used for file output
45874093 </summary>
4094+ <param name="fileStream">the file stream that has been opened for writing</param>
45884095 <remarks>
45894096 <para>
4590- Does nothing. The lock will be released when the file is closed.
4097+ This implementation of <see cref="M:SetQWForFiles(Stream)"/> creates a <see cref="T:System.IO.StreamWriter"/>
4098+ over the <paramref name="fileStream"/> and passes it to the
4099+ <see cref="M:SetQWForFiles(TextWriter)"/> method.
45914100 </para>
4101+ <para>
4102+ This method can be overridden by sub classes that want to wrap the
4103+ <see cref="T:System.IO.Stream"/> in some way, for example to encrypt the output
4104+ data using a <c>System.Security.Cryptography.CryptoStream</c>.
4105+ </para>
45924106 </remarks>
45934107 </member>
4594- <member name="T:log4net.Appender.FileAppender.MinimalLock">
4108+ <member name="M:log4net.Appender.FileAppender.SetQWForFiles(System.IO.TextWriter)">
45954109 <summary>
4596- Acquires the file lock for each write
4110+ Sets the quiet writer being used.
45974111 </summary>
4112+ <param name="writer">the writer over the file stream that has been opened for writing</param>
45984113 <remarks>
45994114 <para>
4600- Opens the file once for each <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>/<see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> cycle,
4601- thus holding the lock for the minimal amount of time. This method of locking
4602- is considerably slower than <see cref="T:log4net.Appender.FileAppender.ExclusiveLock"/> but allows
4603- other processes to move/delete the log file whilst logging continues.
4115+ This method can be overridden by sub classes that want to
4116+ wrap the <see cref="T:System.IO.TextWriter"/> in some way.
46044117 </para>
46054118 </remarks>
46064119 </member>
4607- <member name="M:log4net.Appender.FileAppender.MinimalLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
4120+ <member name="M:log4net.Appender.FileAppender.ConvertToFullPath(System.String)">
46084121 <summary>
4609- Prepares to open the file when the first message is logged.
4122+ Convert a path into a fully qualified path.
46104123 </summary>
4611- <param name="filename">The filename to use</param>
4612- <param name="append">Whether to append to the file, or overwrite</param>
4613- <param name="encoding">The encoding to use</param>
4124+ <param name="path">The path to convert.</param>
4125+ <returns>The fully qualified path.</returns>
46144126 <remarks>
46154127 <para>
4616- Open the file specified and prepare for logging.
4617- No writes will be made until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called.
4618- Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/>,
4619- <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.MinimalLock.CloseFile"/>.
4128+ Converts the path specified to a fully
4129+ qualified path. If the path is relative it is
4130+ taken as relative from the application base
4131+ directory.
46204132 </para>
46214133 </remarks>
46224134 </member>
4623- <member name="M:log4net.Appender.FileAppender.MinimalLock.CloseFile">
4135+ <member name="F:log4net.Appender.FileAppender.m_appendToFile">
46244136 <summary>
4625- Close the file
4137+ Flag to indicate if we should append to the file
4138+ or overwrite the file. The default is to append.
46264139 </summary>
4627- <remarks>
4628- <para>
4629- Close the file. No further writes will be made.
4630- </para>
4631- </remarks>
46324140 </member>
4633- <member name="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock">
4141+ <member name="F:log4net.Appender.FileAppender.m_fileName">
46344142 <summary>
4635- Acquire the lock on the file
4143+ The name of the log file.
46364144 </summary>
4637- <returns>A stream that is ready to be written to.</returns>
4638- <remarks>
4639- <para>
4640- Acquire the lock on the file in preparation for writing to it.
4641- Return a stream pointing to the file. <see cref="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock"/>
4642- must be called to release the lock on the output file.
4643- </para>
4644- </remarks>
46454145 </member>
4646- <member name="M:log4net.Appender.FileAppender.MinimalLock.ReleaseLock">
4146+ <member name="F:log4net.Appender.FileAppender.m_encoding">
46474147 <summary>
4648- Release the lock on the file
4148+ The encoding to use for the file stream.
46494149 </summary>
4650- <remarks>
4651- <para>
4652- Release the lock on the file. No further writes will be made to the
4653- stream until <see cref="M:log4net.Appender.FileAppender.MinimalLock.AcquireLock"/> is called again.
4654- </para>
4655- </remarks>
46564150 </member>
4657- <member name="T:log4net.Appender.FileAppender.InterProcessLock">
4151+ <member name="F:log4net.Appender.FileAppender.m_securityContext">
46584152 <summary>
4659- Provides cross-process file locking.
4153+ The security context to use for privileged calls
46604154 </summary>
4661- <author>Ron Grabowski</author>
4662- <author>Steve Wranovsky</author>
46634155 </member>
4664- <member name="M:log4net.Appender.FileAppender.InterProcessLock.OpenFile(System.String,System.Boolean,System.Text.Encoding)">
4156+ <member name="F:log4net.Appender.FileAppender.m_stream">
46654157 <summary>
4666- Open the file specified and prepare for logging.
4158+ The stream to log to. Has added locking semantics
46674159 </summary>
4668- <param name="filename">The filename to use</param>
4669- <param name="append">Whether to append to the file, or overwrite</param>
4670- <param name="encoding">The encoding to use</param>
4671- <remarks>
4672- <para>
4673- Open the file specified and prepare for logging.
4674- No writes will be made until <see cref="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock"/> is called.
4675- Must be called before any calls to <see cref="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock"/>,
4676- -<see cref="M:log4net.Appender.FileAppender.InterProcessLock.ReleaseLock"/> and <see cref="M:log4net.Appender.FileAppender.InterProcessLock.CloseFile"/>.
4677- </para>
4678- </remarks>
46794160 </member>
4680- <member name="M:log4net.Appender.FileAppender.InterProcessLock.CloseFile">
4161+ <member name="F:log4net.Appender.FileAppender.m_lockingModel">
46814162 <summary>
4682- Close the file
4163+ The locking model to use
46834164 </summary>
4684- <remarks>
4685- <para>
4686- Close the file. No further writes will be made.
4687- </para>
4688- </remarks>
46894165 </member>
4690- <member name="M:log4net.Appender.FileAppender.InterProcessLock.AcquireLock">
4166+ <member name="F:log4net.Appender.FileAppender.declaringType">
46914167 <summary>
4692- Acquire the lock on the file
4168+ The fully qualified type of the FileAppender class.
46934169 </summary>
4694- <returns>A stream that is ready to be written to.</returns>
46954170 <remarks>
4696- <para>
4697- Does nothing. The lock is already taken
4698- </para>
4171+ Used by the internal logger to record the Type of the
4172+ log message.
46994173 </remarks>
47004174 </member>
4701- <member name="M:log4net.Appender.FileAppender.InterProcessLock.ReleaseLock">
4702- <summary>
4703-
4704- </summary>
4705- </member>
47064175 <member name="T:log4net.Appender.ForwardingAppender">
47074176 <summary>
47084177 This appender forwards logging events to attached appenders.
@@ -4718,7 +4187,7 @@
47184187 </member>
47194188 <member name="M:log4net.Appender.ForwardingAppender.#ctor">
47204189 <summary>
4721- Initializes a new instance of the <see cref="T:log4net.Appender.ForwardingAppender"/> class.
4190+ Initializes a new instance of the <see cref="T:log4net.Appender.ForwardingAppender" /> class.
47224191 </summary>
47234192 <remarks>
47244193 <para>
@@ -4764,17 +4233,30 @@
47644233 </member>
47654234 <member name="M:log4net.Appender.ForwardingAppender.AddAppender(log4net.Appender.IAppender)">
47664235 <summary>
4767- Adds an <see cref="T:log4net.Appender.IAppender"/> to the list of appenders of this
4236+ Adds an <see cref="T:log4net.Appender.IAppender" /> to the list of appenders of this
47684237 instance.
47694238 </summary>
4770- <param name="newAppender">The <see cref="T:log4net.Appender.IAppender"/> to add to this appender.</param>
4239+ <param name="newAppender">The <see cref="T:log4net.Appender.IAppender" /> to add to this appender.</param>
47714240 <remarks>
47724241 <para>
4773- If the specified <see cref="T:log4net.Appender.IAppender"/> is already in the list of
4242+ If the specified <see cref="T:log4net.Appender.IAppender" /> is already in the list of
47744243 appenders, then it won't be added again.
47754244 </para>
47764245 </remarks>
47774246 </member>
4247+ <member name="P:log4net.Appender.ForwardingAppender.Appenders">
4248+ <summary>
4249+ Gets the appenders contained in this appender as an
4250+ <see cref="T:System.Collections.ICollection"/>.
4251+ </summary>
4252+ <remarks>
4253+ If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/>
4254+ is returned.
4255+ </remarks>
4256+ <returns>
4257+ A collection of the appenders in this appender.
4258+ </returns>
4259+ </member>
47784260 <member name="M:log4net.Appender.ForwardingAppender.GetAppender(System.String)">
47794261 <summary>
47804262 Looks for the appender with the specified name.
@@ -4828,188 +4310,143 @@
48284310 Implementation of the <see cref="T:log4net.Core.IAppenderAttachable"/> interface
48294311 </summary>
48304312 </member>
4831- <member name="P:log4net.Appender.ForwardingAppender.Appenders">
4313+ <member name="T:log4net.Appender.IAppender">
48324314 <summary>
4833- Gets the appenders contained in this appender as an
4834- <see cref="T:System.Collections.ICollection"/>.
4315+ Implement this interface for your own strategies for printing log statements.
48354316 </summary>
48364317 <remarks>
4837- If no appenders can be found, then an <see cref="T:log4net.Util.EmptyCollection"/>
4838- is returned.
4839- </remarks>
4840- <returns>
4841- A collection of the appenders in this appender.
4842- </returns>
4843- </member>
4844- <member name="T:log4net.Appender.LocalSyslogAppender">
4845- <summary>
4846- Logs events to a local syslog service.
4847- </summary>
4848- <remarks>
4849- <note>
4850- This appender uses the POSIX libc library functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c>.
4851- If these functions are not available on the local system then this appender will not work!
4852- </note>
48534318 <para>
4854- The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are specified in SUSv2 and
4855- POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
4319+ Implementors should consider extending the <see cref="T:log4net.Appender.AppenderSkeleton"/>
4320+ class which provides a default implementation of this interface.
48564321 </para>
48574322 <para>
4858- This appender talks to a local syslog service. If you need to log to a remote syslog
4859- daemon and you cannot configure your local syslog service to do this you may be
4860- able to use the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> to log via UDP.
4323+ Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
4324+ they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
4325+ be called after the appenders properties have been configured.
48614326 </para>
4862- <para>
4863- Syslog messages must have a facility and and a severity. The severity
4864- is derived from the Level of the logging event.
4865- The facility must be chosen from the set of defined syslog
4866- <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The facilities list is predefined
4867- and cannot be extended.
4868- </para>
4869- <para>
4870- An identifier is specified with each log message. This can be specified
4871- by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Identity"/> property. The identity (also know
4872- as the tag) must not contain white space. The default value for the
4873- identity is the application name (from <see cref="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
4874- </para>
48754327 </remarks>
4876- <author>Rob Lyon</author>
48774328 <author>Nicko Cadell</author>
4329+ <author>Gert Driesen</author>
48784330 </member>
4879- <member name="M:log4net.Appender.LocalSyslogAppender.#ctor">
4331+ <member name="M:log4net.Appender.IAppender.Close">
48804332 <summary>
4881- Initializes a new instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class.
4333+ Closes the appender and releases resources.
48824334 </summary>
48834335 <remarks>
4884- This instance of the <see cref="T:log4net.Appender.LocalSyslogAppender"/> class is set up to write
4885- to a local syslog service.
4886- </remarks>
4887- </member>
4888- <member name="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)">
4889- <summary>
4890- Add a mapping of level to severity
4891- </summary>
4892- <param name="mapping">The mapping to add</param>
4893- <remarks>
48944336 <para>
4895- Adds a <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/> to this appender.
4337+ Releases any resources allocated within the appender such as file handles,
4338+ network connections, etc.
48964339 </para>
4340+ <para>
4341+ It is a programming error to append to a closed appender.
4342+ </para>
48974343 </remarks>
48984344 </member>
4899- <member name="M:log4net.Appender.LocalSyslogAppender.ActivateOptions">
4345+ <member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)">
49004346 <summary>
4901- Initialize the appender based on the options set.
4347+ Log the logging event in Appender specific way.
49024348 </summary>
4349+ <param name="loggingEvent">The event to log</param>
49034350 <remarks>
49044351 <para>
4905- This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
4906- activation scheme. The <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> method must
4907- be called on this object after the configuration properties have
4908- been set. Until <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> is called this
4909- object is in an undefined state and must not be used.
4352+ This method is called to log a message into this appender.
49104353 </para>
4911- <para>
4912- If any of the configuration properties are modified then
4913- <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> must be called again.
4914- </para>
49154354 </remarks>
49164355 </member>
4917- <member name="M:log4net.Appender.LocalSyslogAppender.Append(log4net.Core.LoggingEvent)">
4356+ <member name="P:log4net.Appender.IAppender.Name">
49184357 <summary>
4919- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
4358+ Gets or sets the name of this appender.
49204359 </summary>
4921- <param name="loggingEvent">The event to log.</param>
4360+ <value>The name of the appender.</value>
49224361 <remarks>
4923- <para>
4924- Writes the event to a remote syslog daemon.
4925- </para>
4926- <para>
4927- The format of the output will depend on the appender's layout.
4928- </para>
4362+ <para>The name uniquely identifies the appender.</para>
49294363 </remarks>
49304364 </member>
4931- <member name="M:log4net.Appender.LocalSyslogAppender.OnClose">
4365+ <member name="T:log4net.Appender.IBulkAppender">
49324366 <summary>
4933- Close the syslog when the appender is closed
4367+ Interface for appenders that support bulk logging.
49344368 </summary>
49354369 <remarks>
49364370 <para>
4937- Close the syslog when the appender is closed
4371+ This interface extends the <see cref="T:log4net.Appender.IAppender"/> interface to
4372+ support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> objects. Appenders
4373+ should only implement this interface if they can bulk log efficiently.
49384374 </para>
49394375 </remarks>
4376+ <author>Nicko Cadell</author>
49404377 </member>
4941- <member name="M:log4net.Appender.LocalSyslogAppender.GetSeverity(log4net.Core.Level)">
4378+ <member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.LoggingEvent[])">
49424379 <summary>
4943- Translates a log4net level to a syslog severity.
4380+ Log the array of logging events in Appender specific way.
49444381 </summary>
4945- <param name="level">A log4net level.</param>
4946- <returns>A syslog severity.</returns>
4382+ <param name="loggingEvents">The events to log</param>
49474383 <remarks>
49484384 <para>
4949- Translates a log4net level to a syslog severity.
4385+ This method is called to log an array of events into this appender.
49504386 </para>
49514387 </remarks>
49524388 </member>
4953- <member name="M:log4net.Appender.LocalSyslogAppender.GeneratePriority(log4net.Appender.LocalSyslogAppender.SyslogFacility,log4net.Appender.LocalSyslogAppender.SyslogSeverity)">
4389+ <member name="T:log4net.Appender.IFlushable">
49544390 <summary>
4955- Generate a syslog priority.
4391+ Interface that can be implemented by Appenders that buffer logging data and expose a <see cref="M:log4net.Appender.IFlushable.Flush(System.Int32)"/> method.
49564392 </summary>
4957- <param name="facility">The syslog facility.</param>
4958- <param name="severity">The syslog severity.</param>
4959- <returns>A syslog priority.</returns>
49604393 </member>
4961- <member name="F:log4net.Appender.LocalSyslogAppender.m_facility">
4394+ <member name="M:log4net.Appender.IFlushable.Flush(System.Int32)">
49624395 <summary>
4963- The facility. The default facility is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
4396+ Flushes any buffered log data.
49644397 </summary>
4965- </member>
4966- <member name="F:log4net.Appender.LocalSyslogAppender.m_identity">
4967- <summary>
4968- The message identity
4969- </summary>
4970- </member>
4971- <member name="F:log4net.Appender.LocalSyslogAppender.m_handleToIdentity">
4972- <summary>
4973- Marshaled handle to the identity string. We have to hold on to the
4974- string as the <c>openlog</c> and <c>syslog</c> APIs just hold the
4975- pointer to the ident and dereference it for each log message.
4976- </summary>
4977- </member>
4978- <member name="F:log4net.Appender.LocalSyslogAppender.m_levelMapping">
4979- <summary>
4980- Mapping from level object to syslog severity
4981- </summary>
4982- </member>
4983- <member name="M:log4net.Appender.LocalSyslogAppender.openlog(System.IntPtr,System.Int32,log4net.Appender.LocalSyslogAppender.SyslogFacility)">
4984- <summary>
4985- Open connection to system logger.
4986- </summary>
4987- </member>
4988- <member name="M:log4net.Appender.LocalSyslogAppender.syslog(System.Int32,System.String,System.String)">
4989- <summary>
4990- Generate a log message.
4991- </summary>
49924398 <remarks>
4399+ Appenders that implement the <see cref="M:log4net.Appender.IFlushable.Flush(System.Int32)"/> method must do so in a thread-safe manner: it can be called concurrently with
4400+ the <see cref="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)"/> method.
49934401 <para>
4994- The libc syslog method takes a format string and a variable argument list similar
4995- to the classic printf function. As this type of vararg list is not supported
4996- by C# we need to specify the arguments explicitly. Here we have specified the
4997- format string with a single message argument. The caller must set the format
4998- string to <c>"%s"</c>.
4402+ Typically this is done by locking on the Appender instance, e.g.:
4403+ <code>
4404+ <![CDATA[
4405+ public bool Flush(int millisecondsTimeout)
4406+ {
4407+ lock(this)
4408+ {
4409+ // Flush buffered logging data
4410+ ...
4411+ }
4412+ }
4413+ ]]>
4414+ </code>
49994415 </para>
4416+ <para>
4417+ The <paramref name="millisecondsTimeout"/> parameter is only relevant for appenders that process logging events asynchronously,
4418+ such as <see cref="T:log4net.Appender.RemotingAppender"/>.
4419+ </para>
50004420 </remarks>
4421+ <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
4422+ <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
50014423 </member>
5002- <member name="M:log4net.Appender.LocalSyslogAppender.closelog">
4424+ <member name="T:log4net.Appender.LocalSyslogAppender">
50034425 <summary>
5004- Close descriptor used to write to system logger.
4426+ Logs events to a local syslog service.
50054427 </summary>
5006- </member>
5007- <member name="P:log4net.Appender.LocalSyslogAppender.Identity">
5008- <summary>
5009- Message identity
5010- </summary>
50114428 <remarks>
4429+ <note>
4430+ This appender uses the POSIX libc library functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c>.
4431+ If these functions are not available on the local system then this appender will not work!
4432+ </note>
50124433 <para>
4434+ The functions <c>openlog</c>, <c>syslog</c>, and <c>closelog</c> are specified in SUSv2 and
4435+ POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
4436+ </para>
4437+ <para>
4438+ This appender talks to a local syslog service. If you need to log to a remote syslog
4439+ daemon and you cannot configure your local syslog service to do this you may be
4440+ able to use the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> to log via UDP.
4441+ </para>
4442+ <para>
4443+ Syslog messages must have a facility and and a severity. The severity
4444+ is derived from the Level of the logging event.
4445+ The facility must be chosen from the set of defined syslog
4446+ <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The facilities list is predefined
4447+ and cannot be extended.
4448+ </para>
4449+ <para>
50134450 An identifier is specified with each log message. This can be specified
50144451 by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Identity"/> property. The identity (also know
50154452 as the tag) must not contain white space. The default value for the
@@ -5016,28 +4453,9 @@
50164453 identity is the application name (from <see cref="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
50174454 </para>
50184455 </remarks>
4456+ <author>Rob Lyon</author>
4457+ <author>Nicko Cadell</author>
50194458 </member>
5020- <member name="P:log4net.Appender.LocalSyslogAppender.Facility">
5021- <summary>
5022- Syslog facility
5023- </summary>
5024- <remarks>
5025- Set to one of the <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The list of
5026- facilities is predefined and cannot be extended. The default value
5027- is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
5028- </remarks>
5029- </member>
5030- <member name="P:log4net.Appender.LocalSyslogAppender.RequiresLayout">
5031- <summary>
5032- This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
5033- </summary>
5034- <value><c>true</c></value>
5035- <remarks>
5036- <para>
5037- This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
5038- </para>
5039- </remarks>
5040- </member>
50414459 <member name="T:log4net.Appender.LocalSyslogAppender.SyslogSeverity">
50424460 <summary>
50434461 syslog severities
@@ -5221,6 +4639,168 @@
52214639 reserved for local use
52224640 </summary>
52234641 </member>
4642+ <member name="M:log4net.Appender.LocalSyslogAppender.#ctor">
4643+ <summary>
4644+ Initializes a new instance of the <see cref="T:log4net.Appender.LocalSyslogAppender" /> class.
4645+ </summary>
4646+ <remarks>
4647+ This instance of the <see cref="T:log4net.Appender.LocalSyslogAppender" /> class is set up to write
4648+ to a local syslog service.
4649+ </remarks>
4650+ </member>
4651+ <member name="P:log4net.Appender.LocalSyslogAppender.Identity">
4652+ <summary>
4653+ Message identity
4654+ </summary>
4655+ <remarks>
4656+ <para>
4657+ An identifier is specified with each log message. This can be specified
4658+ by setting the <see cref="P:log4net.Appender.LocalSyslogAppender.Identity"/> property. The identity (also know
4659+ as the tag) must not contain white space. The default value for the
4660+ identity is the application name (from <see cref="P:log4net.Util.SystemInfo.ApplicationFriendlyName"/>).
4661+ </para>
4662+ </remarks>
4663+ </member>
4664+ <member name="P:log4net.Appender.LocalSyslogAppender.Facility">
4665+ <summary>
4666+ Syslog facility
4667+ </summary>
4668+ <remarks>
4669+ Set to one of the <see cref="T:log4net.Appender.LocalSyslogAppender.SyslogFacility"/> values. The list of
4670+ facilities is predefined and cannot be extended. The default value
4671+ is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
4672+ </remarks>
4673+ </member>
4674+ <member name="M:log4net.Appender.LocalSyslogAppender.AddMapping(log4net.Appender.LocalSyslogAppender.LevelSeverity)">
4675+ <summary>
4676+ Add a mapping of level to severity
4677+ </summary>
4678+ <param name="mapping">The mapping to add</param>
4679+ <remarks>
4680+ <para>
4681+ Adds a <see cref="T:log4net.Appender.LocalSyslogAppender.LevelSeverity"/> to this appender.
4682+ </para>
4683+ </remarks>
4684+ </member>
4685+ <member name="M:log4net.Appender.LocalSyslogAppender.ActivateOptions">
4686+ <summary>
4687+ Initialize the appender based on the options set.
4688+ </summary>
4689+ <remarks>
4690+ <para>
4691+ This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
4692+ activation scheme. The <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> method must
4693+ be called on this object after the configuration properties have
4694+ been set. Until <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> is called this
4695+ object is in an undefined state and must not be used.
4696+ </para>
4697+ <para>
4698+ If any of the configuration properties are modified then
4699+ <see cref="M:log4net.Appender.LocalSyslogAppender.ActivateOptions"/> must be called again.
4700+ </para>
4701+ </remarks>
4702+ </member>
4703+ <member name="M:log4net.Appender.LocalSyslogAppender.Append(log4net.Core.LoggingEvent)">
4704+ <summary>
4705+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
4706+ </summary>
4707+ <param name="loggingEvent">The event to log.</param>
4708+ <remarks>
4709+ <para>
4710+ Writes the event to a remote syslog daemon.
4711+ </para>
4712+ <para>
4713+ The format of the output will depend on the appender's layout.
4714+ </para>
4715+ </remarks>
4716+ </member>
4717+ <member name="M:log4net.Appender.LocalSyslogAppender.OnClose">
4718+ <summary>
4719+ Close the syslog when the appender is closed
4720+ </summary>
4721+ <remarks>
4722+ <para>
4723+ Close the syslog when the appender is closed
4724+ </para>
4725+ </remarks>
4726+ </member>
4727+ <member name="P:log4net.Appender.LocalSyslogAppender.RequiresLayout">
4728+ <summary>
4729+ This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
4730+ </summary>
4731+ <value><c>true</c></value>
4732+ <remarks>
4733+ <para>
4734+ This appender requires a <see cref="P:log4net.Appender.AppenderSkeleton.Layout"/> to be set.
4735+ </para>
4736+ </remarks>
4737+ </member>
4738+ <member name="M:log4net.Appender.LocalSyslogAppender.GetSeverity(log4net.Core.Level)">
4739+ <summary>
4740+ Translates a log4net level to a syslog severity.
4741+ </summary>
4742+ <param name="level">A log4net level.</param>
4743+ <returns>A syslog severity.</returns>
4744+ <remarks>
4745+ <para>
4746+ Translates a log4net level to a syslog severity.
4747+ </para>
4748+ </remarks>
4749+ </member>
4750+ <member name="M:log4net.Appender.LocalSyslogAppender.GeneratePriority(log4net.Appender.LocalSyslogAppender.SyslogFacility,log4net.Appender.LocalSyslogAppender.SyslogSeverity)">
4751+ <summary>
4752+ Generate a syslog priority.
4753+ </summary>
4754+ <param name="facility">The syslog facility.</param>
4755+ <param name="severity">The syslog severity.</param>
4756+ <returns>A syslog priority.</returns>
4757+ </member>
4758+ <member name="F:log4net.Appender.LocalSyslogAppender.m_facility">
4759+ <summary>
4760+ The facility. The default facility is <see cref="F:log4net.Appender.LocalSyslogAppender.SyslogFacility.User"/>.
4761+ </summary>
4762+ </member>
4763+ <member name="F:log4net.Appender.LocalSyslogAppender.m_identity">
4764+ <summary>
4765+ The message identity
4766+ </summary>
4767+ </member>
4768+ <member name="F:log4net.Appender.LocalSyslogAppender.m_handleToIdentity">
4769+ <summary>
4770+ Marshaled handle to the identity string. We have to hold on to the
4771+ string as the <c>openlog</c> and <c>syslog</c> APIs just hold the
4772+ pointer to the ident and dereference it for each log message.
4773+ </summary>
4774+ </member>
4775+ <member name="F:log4net.Appender.LocalSyslogAppender.m_levelMapping">
4776+ <summary>
4777+ Mapping from level object to syslog severity
4778+ </summary>
4779+ </member>
4780+ <member name="M:log4net.Appender.LocalSyslogAppender.openlog(System.IntPtr,System.Int32,log4net.Appender.LocalSyslogAppender.SyslogFacility)">
4781+ <summary>
4782+ Open connection to system logger.
4783+ </summary>
4784+ </member>
4785+ <member name="M:log4net.Appender.LocalSyslogAppender.syslog(System.Int32,System.String,System.String)">
4786+ <summary>
4787+ Generate a log message.
4788+ </summary>
4789+ <remarks>
4790+ <para>
4791+ The libc syslog method takes a format string and a variable argument list similar
4792+ to the classic printf function. As this type of vararg list is not supported
4793+ by C# we need to specify the arguments explicitly. Here we have specified the
4794+ format string with a single message argument. The caller must set the format
4795+ string to <c>"%s"</c>.
4796+ </para>
4797+ </remarks>
4798+ </member>
4799+ <member name="M:log4net.Appender.LocalSyslogAppender.closelog">
4800+ <summary>
4801+ Close descriptor used to write to system logger.
4802+ </summary>
4803+ </member>
52244804 <member name="T:log4net.Appender.LocalSyslogAppender.LevelSeverity">
52254805 <summary>
52264806 A class to act as a mapping between the level that a logging call is made at and
@@ -5266,21 +4846,21 @@
52664846 </para>
52674847 <code lang="XML" escaped="true">
52684848 <mapping>
5269- <level value="ERROR"/>
5270- <foreColor value="DarkRed"/>
5271- <backColor value="White"/>
4849+ <level value="ERROR" />
4850+ <foreColor value="DarkRed" />
4851+ <backColor value="White" />
52724852 </mapping>
52734853 <mapping>
5274- <level value="WARN"/>
5275- <foreColor value="Yellow"/>
4854+ <level value="WARN" />
4855+ <foreColor value="Yellow" />
52764856 </mapping>
52774857 <mapping>
5278- <level value="INFO"/>
5279- <foreColor value="White"/>
4858+ <level value="INFO" />
4859+ <foreColor value="White" />
52804860 </mapping>
52814861 <mapping>
5282- <level value="DEBUG"/>
5283- <foreColor value="Blue"/>
4862+ <level value="DEBUG" />
4863+ <foreColor value="Blue" />
52844864 </mapping>
52854865 </code>
52864866 <para>
@@ -5296,39 +4876,31 @@
52964876 <author>Nicko Cadell</author>
52974877 <author>Pavlos Touboulidis</author>
52984878 </member>
5299- <member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleOut">
4879+ <member name="M:log4net.Appender.ManagedColoredConsoleAppender.#ctor">
53004880 <summary>
5301- The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
5302- standard output stream.
4881+ Initializes a new instance of the <see cref="T:log4net.Appender.ManagedColoredConsoleAppender" /> class.
53034882 </summary>
53044883 <remarks>
5305- <para>
5306- The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
5307- standard output stream.
5308- </para>
4884+ The instance of the <see cref="T:log4net.Appender.ManagedColoredConsoleAppender" /> class is set up to write
4885+ to the standard output stream.
53094886 </remarks>
53104887 </member>
5311- <member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleError">
4888+ <member name="P:log4net.Appender.ManagedColoredConsoleAppender.Target">
53124889 <summary>
5313- The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
5314- standard error output stream.
4890+ Target is the value of the console output stream.
4891+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
53154892 </summary>
4893+ <value>
4894+ Target is the value of the console output stream.
4895+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
4896+ </value>
53164897 <remarks>
53174898 <para>
5318- The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
5319- standard error output stream.
4899+ Target is the value of the console output stream.
4900+ This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
53204901 </para>
53214902 </remarks>
53224903 </member>
5323- <member name="M:log4net.Appender.ManagedColoredConsoleAppender.#ctor">
5324- <summary>
5325- Initializes a new instance of the <see cref="T:log4net.Appender.ManagedColoredConsoleAppender"/> class.
5326- </summary>
5327- <remarks>
5328- The instance of the <see cref="T:log4net.Appender.ManagedColoredConsoleAppender"/> class is set up to write
5329- to the standard output stream.
5330- </remarks>
5331- </member>
53324904 <member name="M:log4net.Appender.ManagedColoredConsoleAppender.AddMapping(log4net.Appender.ManagedColoredConsoleAppender.LevelColors)">
53334905 <summary>
53344906 Add a mapping of level to color - done by the config file
@@ -5356,6 +4928,17 @@
53564928 </para>
53574929 </remarks>
53584930 </member>
4931+ <member name="P:log4net.Appender.ManagedColoredConsoleAppender.RequiresLayout">
4932+ <summary>
4933+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
4934+ </summary>
4935+ <value><c>true</c></value>
4936+ <remarks>
4937+ <para>
4938+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
4939+ </para>
4940+ </remarks>
4941+ </member>
53594942 <member name="M:log4net.Appender.ManagedColoredConsoleAppender.ActivateOptions">
53604943 <summary>
53614944 Initialize the options for this appender
@@ -5366,43 +4949,40 @@
53664949 </para>
53674950 </remarks>
53684951 </member>
5369- <member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_writeToErrorStream">
4952+ <member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleOut">
53704953 <summary>
5371- Flag to write output to the error stream rather than the standard output stream
4954+ The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
4955+ standard output stream.
53724956 </summary>
5373- </member>
5374- <member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_levelMapping">
5375- <summary>
5376- Mapping from level object to color value
5377- </summary>
5378- </member>
5379- <member name="P:log4net.Appender.ManagedColoredConsoleAppender.Target">
5380- <summary>
5381- Target is the value of the console output stream.
5382- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
5383- </summary>
5384- <value>
5385- Target is the value of the console output stream.
5386- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
5387- </value>
53884957 <remarks>
53894958 <para>
5390- Target is the value of the console output stream.
5391- This is either <c>"Console.Out"</c> or <c>"Console.Error"</c>.
4959+ The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
4960+ standard output stream.
53924961 </para>
53934962 </remarks>
53944963 </member>
5395- <member name="P:log4net.Appender.ManagedColoredConsoleAppender.RequiresLayout">
4964+ <member name="F:log4net.Appender.ManagedColoredConsoleAppender.ConsoleError">
53964965 <summary>
5397- This appender requires a <see cref="N:log4net.Layout"/> to be set.
4966+ The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
4967+ standard error output stream.
53984968 </summary>
5399- <value><c>true</c></value>
54004969 <remarks>
54014970 <para>
5402- This appender requires a <see cref="N:log4net.Layout"/> to be set.
4971+ The <see cref="P:log4net.Appender.ManagedColoredConsoleAppender.Target"/> to use when writing to the Console
4972+ standard error output stream.
54034973 </para>
54044974 </remarks>
54054975 </member>
4976+ <member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_writeToErrorStream">
4977+ <summary>
4978+ Flag to write output to the error stream rather than the standard output stream
4979+ </summary>
4980+ </member>
4981+ <member name="F:log4net.Appender.ManagedColoredConsoleAppender.m_levelMapping">
4982+ <summary>
4983+ Mapping from level object to color value
4984+ </summary>
4985+ </member>
54064986 <member name="T:log4net.Appender.ManagedColoredConsoleAppender.LevelColors">
54074987 <summary>
54084988 A class to act as a mapping between the level that a logging call is made at and
@@ -5446,12 +5026,22 @@
54465026 that are appended in an in-memory array.
54475027 </para>
54485028 <para>
5449- Use the <see cref="M:log4net.Appender.MemoryAppender.GetEvents"/> method to get
5450- the current list of events that have been appended.
5029+ Use the <see cref="M:PopAllEvents()"/> method to get
5030+ and clear the current list of events that have been appended.
54515031 </para>
54525032 <para>
5033+ Use the <see cref="M:GetEvents()"/> method to get the current
5034+ list of events that have been appended. Note there is a
5035+ race-condition when calling <see cref="M:GetEvents()"/> and
5036+ <see cref="M:Clear()"/> in pairs, you better use <see
5037+ mref="M:PopAllEvents()"/> in that case.
5038+ </para>
5039+ <para>
54535040 Use the <see cref="M:Clear()"/> method to clear the
5454- current list of events.
5041+ current list of events. Note there is a
5042+ race-condition when calling <see cref="M:GetEvents()"/> and
5043+ <see cref="M:Clear()"/> in pairs, you better use <see
5044+ mref="M:PopAllEvents()"/> in that case.
54555045 </para>
54565046 </remarks>
54575047 <author>Julian Biddle</author>
@@ -5460,7 +5050,7 @@
54605050 </member>
54615051 <member name="M:log4net.Appender.MemoryAppender.#ctor">
54625052 <summary>
5463- Initializes a new instance of the <see cref="T:log4net.Appender.MemoryAppender"/> class.
5053+ Initializes a new instance of the <see cref="T:log4net.Appender.MemoryAppender" /> class.
54645054 </summary>
54655055 <remarks>
54665056 <para>
@@ -5479,36 +5069,6 @@
54795069 </para>
54805070 </remarks>
54815071 </member>
5482- <member name="M:log4net.Appender.MemoryAppender.Append(log4net.Core.LoggingEvent)">
5483- <summary>
5484- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
5485- </summary>
5486- <param name="loggingEvent">the event to log</param>
5487- <remarks>
5488- <para>Stores the <paramref name="loggingEvent"/> in the events list.</para>
5489- </remarks>
5490- </member>
5491- <member name="M:log4net.Appender.MemoryAppender.Clear">
5492- <summary>
5493- Clear the list of events
5494- </summary>
5495- <remarks>
5496- Clear the list of events
5497- </remarks>
5498- </member>
5499- <member name="F:log4net.Appender.MemoryAppender.m_eventsList">
5500- <summary>
5501- The list of events that have been appended.
5502- </summary>
5503- </member>
5504- <member name="F:log4net.Appender.MemoryAppender.m_fixFlags">
5505- <summary>
5506- Value indicating which fields in the event should be fixed
5507- </summary>
5508- <remarks>
5509- By default all fields are fixed
5510- </remarks>
5511- </member>
55125072 <member name="P:log4net.Appender.MemoryAppender.OnlyFixPartialEventData">
55135073 <summary>
55145074 Gets or sets a value indicating whether only part of the logging event
@@ -5540,10 +5100,51 @@
55405100 </para>
55415101 </remarks>
55425102 </member>
5103+ <member name="M:log4net.Appender.MemoryAppender.Append(log4net.Core.LoggingEvent)">
5104+ <summary>
5105+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
5106+ </summary>
5107+ <param name="loggingEvent">the event to log</param>
5108+ <remarks>
5109+ <para>Stores the <paramref name="loggingEvent"/> in the events list.</para>
5110+ </remarks>
5111+ </member>
5112+ <member name="M:log4net.Appender.MemoryAppender.Clear">
5113+ <summary>
5114+ Clear the list of events
5115+ </summary>
5116+ <remarks>
5117+ Clear the list of events
5118+ </remarks>
5119+ </member>
5120+ <member name="M:log4net.Appender.MemoryAppender.PopAllEvents">
5121+ <summary>
5122+ Gets the events that have been logged and clears the list of events.
5123+ </summary>
5124+ <returns>The events that have been logged</returns>
5125+ <remarks>
5126+ <para>
5127+ Gets the events that have been logged and clears the list of events.
5128+ </para>
5129+ </remarks>
5130+ </member>
5131+ <member name="F:log4net.Appender.MemoryAppender.m_eventsList">
5132+ <summary>
5133+ The list of events that have been appended.
5134+ </summary>
5135+ </member>
5136+ <member name="F:log4net.Appender.MemoryAppender.m_fixFlags">
5137+ <summary>
5138+ Value indicating which fields in the event should be fixed
5139+ </summary>
5140+ <remarks>
5141+ By default all fields are fixed
5142+ </remarks>
5143+ </member>
55435144 <member name="T:log4net.Appender.NetSendAppender">
55445145 <summary>
55455146 Logs entries by sending network messages using the
5546- <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)"/> native function.
5147+ <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)" /> native function.
55475148 </summary>
55485149 <remarks>
55495150 <para>
@@ -5622,7 +5223,7 @@
56225223 </para>
56235224 <para>
56245225 <b>Note :</b> security restrictions apply for sending
5625- network messages, see <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)"/>
5226+ network messages, see <see cref="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)" />
56265227 for more information.
56275228 </para>
56285229 </remarks>
@@ -5634,9 +5235,9 @@
56345235 </para>
56355236 <code lang="XML" escaped="true">
56365237 <appender name="NetSendAppender_Operator" type="log4net.Appender.NetSendAppender">
5637- <server value="LOCAL_PC"/>
5638- <recipient value="OPERATOR_PC"/>
5639- <layout type="log4net.Layout.PatternLayout" value="%-5p %c [%x] - %m%n"/>
5238+ <server value="LOCAL_PC" />
5239+ <recipient value="OPERATOR_PC" />
5240+ <layout type="log4net.Layout.PatternLayout" value="%-5p %c [%x] - %m%n" />
56405241 </appender>
56415242 </code>
56425243 </example>
@@ -5671,6 +5272,60 @@
56715272 The default constructor initializes all fields to their default values.
56725273 </remarks>
56735274 </member>
5275+ <member name="P:log4net.Appender.NetSendAppender.Sender">
5276+ <summary>
5277+ Gets or sets the sender of the message.
5278+ </summary>
5279+ <value>
5280+ The sender of the message.
5281+ </value>
5282+ <remarks>
5283+ If this property is not specified, the message is sent from the local computer.
5284+ </remarks>
5285+ </member>
5286+ <member name="P:log4net.Appender.NetSendAppender.Recipient">
5287+ <summary>
5288+ Gets or sets the message alias to which the message should be sent.
5289+ </summary>
5290+ <value>
5291+ The recipient of the message.
5292+ </value>
5293+ <remarks>
5294+ This property should always be specified in order to send a message.
5295+ </remarks>
5296+ </member>
5297+ <member name="P:log4net.Appender.NetSendAppender.Server">
5298+ <summary>
5299+ Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
5300+ </summary>
5301+ <value>
5302+ DNS or NetBIOS name of the remote server on which the function is to execute.
5303+ </value>
5304+ <remarks>
5305+ <para>
5306+ For Windows NT 4.0 and earlier, the string should begin with \\.
5307+ </para>
5308+ <para>
5309+ If this property is not specified, the local computer is used.
5310+ </para>
5311+ </remarks>
5312+ </member>
5313+ <member name="P:log4net.Appender.NetSendAppender.SecurityContext">
5314+ <summary>
5315+ Gets or sets the <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
5316+ </summary>
5317+ <value>
5318+ The <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
5319+ </value>
5320+ <remarks>
5321+ <para>
5322+ Unless a <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> specified here for this appender
5323+ the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
5324+ security context to use. The default behavior is to use the security context
5325+ of the current thread.
5326+ </para>
5327+ </remarks>
5328+ </member>
56745329 <member name="M:log4net.Appender.NetSendAppender.ActivateOptions">
56755330 <summary>
56765331 Initialize the appender based on the options set.
@@ -5688,10 +5343,10 @@
56885343 <see cref="M:log4net.Appender.NetSendAppender.ActivateOptions"/> must be called again.
56895344 </para>
56905345 <para>
5691- The appender will be ignored if no <see cref="P:log4net.Appender.NetSendAppender.Recipient"/> was specified.
5346+ The appender will be ignored if no <see cref="P:log4net.Appender.NetSendAppender.Recipient" /> was specified.
56925347 </para>
56935348 </remarks>
5694- <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.NetSendAppender.Recipient"/> was not specified.</exception>
5349+ <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.NetSendAppender.Recipient" /> was not specified.</exception>
56955350 </member>
56965351 <member name="M:log4net.Appender.NetSendAppender.Append(log4net.Core.LoggingEvent)">
56975352 <summary>
@@ -5704,6 +5359,17 @@
57045359 </para>
57055360 </remarks>
57065361 </member>
5362+ <member name="P:log4net.Appender.NetSendAppender.RequiresLayout">
5363+ <summary>
5364+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
5365+ </summary>
5366+ <value><c>true</c></value>
5367+ <remarks>
5368+ <para>
5369+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
5370+ </para>
5371+ </remarks>
5372+ </member>
57075373 <member name="M:log4net.Appender.NetSendAppender.NetMessageBufferSend(System.String,System.String,System.String,System.String,System.Int32)">
57085374 <summary>
57095375 Sends a buffer of information to a registered message alias.
@@ -5760,71 +5426,6 @@
57605426 </para>
57615427 </returns>
57625428 </member>
5763- <member name="P:log4net.Appender.NetSendAppender.Sender">
5764- <summary>
5765- Gets or sets the sender of the message.
5766- </summary>
5767- <value>
5768- The sender of the message.
5769- </value>
5770- <remarks>
5771- If this property is not specified, the message is sent from the local computer.
5772- </remarks>
5773- </member>
5774- <member name="P:log4net.Appender.NetSendAppender.Recipient">
5775- <summary>
5776- Gets or sets the message alias to which the message should be sent.
5777- </summary>
5778- <value>
5779- The recipient of the message.
5780- </value>
5781- <remarks>
5782- This property should always be specified in order to send a message.
5783- </remarks>
5784- </member>
5785- <member name="P:log4net.Appender.NetSendAppender.Server">
5786- <summary>
5787- Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
5788- </summary>
5789- <value>
5790- DNS or NetBIOS name of the remote server on which the function is to execute.
5791- </value>
5792- <remarks>
5793- <para>
5794- For Windows NT 4.0 and earlier, the string should begin with \\.
5795- </para>
5796- <para>
5797- If this property is not specified, the local computer is used.
5798- </para>
5799- </remarks>
5800- </member>
5801- <member name="P:log4net.Appender.NetSendAppender.SecurityContext">
5802- <summary>
5803- Gets or sets the <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
5804- </summary>
5805- <value>
5806- The <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> used to call the NetSend method.
5807- </value>
5808- <remarks>
5809- <para>
5810- Unless a <see cref="P:log4net.Appender.NetSendAppender.SecurityContext"/> specified here for this appender
5811- the <see cref="P:log4net.Core.SecurityContextProvider.DefaultProvider"/> is queried for the
5812- security context to use. The default behavior is to use the security context
5813- of the current thread.
5814- </para>
5815- </remarks>
5816- </member>
5817- <member name="P:log4net.Appender.NetSendAppender.RequiresLayout">
5818- <summary>
5819- This appender requires a <see cref="N:log4net.Layout"/> to be set.
5820- </summary>
5821- <value><c>true</c></value>
5822- <remarks>
5823- <para>
5824- This appender requires a <see cref="N:log4net.Layout"/> to be set.
5825- </para>
5826- </remarks>
5827- </member>
58285429 <member name="T:log4net.Appender.OutputDebugStringAppender">
58295430 <summary>
58305431 Appends log events to the OutputDebugString system.
@@ -5844,7 +5445,7 @@
58445445 </member>
58455446 <member name="M:log4net.Appender.OutputDebugStringAppender.#ctor">
58465447 <summary>
5847- Initializes a new instance of the <see cref="T:log4net.Appender.OutputDebugStringAppender"/> class.
5448+ Initializes a new instance of the <see cref="T:log4net.Appender.OutputDebugStringAppender" /> class.
58485449 </summary>
58495450 <remarks>
58505451 <para>
@@ -5863,25 +5464,25 @@
58635464 </para>
58645465 </remarks>
58655466 </member>
5866- <member name="M:log4net.Appender.OutputDebugStringAppender.OutputDebugString(System.String)">
5467+ <member name="P:log4net.Appender.OutputDebugStringAppender.RequiresLayout">
58675468 <summary>
5868- Stub for OutputDebugString native method
5469+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
58695470 </summary>
5870- <param name="message">the string to output</param>
5471+ <value><c>true</c></value>
58715472 <remarks>
58725473 <para>
5873- Stub for OutputDebugString native method
5474+ This appender requires a <see cref="N:log4net.Layout"/> to be set.
58745475 </para>
58755476 </remarks>
58765477 </member>
5877- <member name="P:log4net.Appender.OutputDebugStringAppender.RequiresLayout">
5478+ <member name="M:log4net.Appender.OutputDebugStringAppender.OutputDebugString(System.String)">
58785479 <summary>
5879- This appender requires a <see cref="N:log4net.Layout"/> to be set.
5480+ Stub for OutputDebugString native method
58805481 </summary>
5881- <value><c>true</c></value>
5482+ <param name="message">the string to output</param>
58825483 <remarks>
58835484 <para>
5884- This appender requires a <see cref="N:log4net.Layout"/> to be set.
5485+ Stub for OutputDebugString native method
58855486 </para>
58865487 </remarks>
58875488 </member>
@@ -5927,468 +5528,11 @@
59275528 <author>Rob Lyon</author>
59285529 <author>Nicko Cadell</author>
59295530 </member>
5930- <member name="T:log4net.Appender.UdpAppender">
5931- <summary>
5932- Sends logging events as connectionless UDP datagrams to a remote host or a
5933- multicast group using an <see cref="T:System.Net.Sockets.UdpClient"/>.
5934- </summary>
5935- <remarks>
5936- <para>
5937- UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
5938- </para>
5939- <para>
5940- To view the logging results, a custom application can be developed that listens for logging
5941- events.
5942- </para>
5943- <para>
5944- When decoding events send via this appender remember to use the same encoding
5945- to decode the events as was used to send the events. See the <see cref="P:log4net.Appender.UdpAppender.Encoding"/>
5946- property to specify the encoding to use.
5947- </para>
5948- </remarks>
5949- <example>
5950- This example shows how to log receive logging events that are sent
5951- on IP address 244.0.0.1 and port 8080 to the console. The event is
5952- encoded in the packet as a unicode string and it is decoded as such.
5953- <code lang="C#">
5954- IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
5955- UdpClient udpClient;
5956- byte[] buffer;
5957- string loggingEvent;
5958-
5959- try
5960- {
5961- udpClient = new UdpClient(8080);
5962-
5963- while(true)
5964- {
5965- buffer = udpClient.Receive(ref remoteEndPoint);
5966- loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
5967- Console.WriteLine(loggingEvent);
5968- }
5969- }
5970- catch(Exception e)
5971- {
5972- Console.WriteLine(e.ToString());
5973- }
5974- </code>
5975- <code lang="Visual Basic">
5976- Dim remoteEndPoint as IPEndPoint
5977- Dim udpClient as UdpClient
5978- Dim buffer as Byte()
5979- Dim loggingEvent as String
5980-
5981- Try
5982- remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
5983- udpClient = new UdpClient(8080)
5984-
5985- While True
5986- buffer = udpClient.Receive(ByRef remoteEndPoint)
5987- loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
5988- Console.WriteLine(loggingEvent)
5989- Wend
5990- Catch e As Exception
5991- Console.WriteLine(e.ToString())
5992- End Try
5993- </code>
5994- <para>
5995- An example configuration section to log information using this appender to the
5996- IP 224.0.0.1 on port 8080:
5997- </para>
5998- <code lang="XML" escaped="true">
5999- <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
6000- <remoteAddress value="224.0.0.1"/>
6001- <remotePort value="8080"/>
6002- <layout type="log4net.Layout.PatternLayout" value="%-5level %logger [%ndc] - %message%newline"/>
6003- </appender>
6004- </code>
6005- </example>
6006- <author>Gert Driesen</author>
6007- <author>Nicko Cadell</author>
6008- </member>
6009- <member name="M:log4net.Appender.UdpAppender.#ctor">
6010- <summary>
6011- Initializes a new instance of the <see cref="T:log4net.Appender.UdpAppender"/> class.
6012- </summary>
6013- <remarks>
6014- The default constructor initializes all fields to their default values.
6015- </remarks>
6016- </member>
6017- <member name="M:log4net.Appender.UdpAppender.ActivateOptions">
6018- <summary>
6019- Initialize the appender based on the options set.
6020- </summary>
6021- <remarks>
6022- <para>
6023- This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
6024- activation scheme. The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method must
6025- be called on this object after the configuration properties have
6026- been set. Until <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> is called this
6027- object is in an undefined state and must not be used.
6028- </para>
6029- <para>
6030- If any of the configuration properties are modified then
6031- <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> must be called again.
6032- </para>
6033- <para>
6034- The appender will be ignored if no <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was specified or
6035- an invalid remote or local TCP port number was specified.
6036- </para>
6037- </remarks>
6038- <exception cref="T:System.ArgumentNullException">The required property <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> was not specified.</exception>
6039- <exception cref="T:System.ArgumentOutOfRangeException">The TCP port number assigned to <see cref="P:log4net.Appender.UdpAppender.LocalPort"/> or <see cref="P:log4net.Appender.UdpAppender.RemotePort"/> is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
6040- </member>
6041- <member name="M:log4net.Appender.UdpAppender.Append(log4net.Core.LoggingEvent)">
6042- <summary>
6043- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
6044- </summary>
6045- <param name="loggingEvent">The event to log.</param>
6046- <remarks>
6047- <para>
6048- Sends the event using an UDP datagram.
6049- </para>
6050- <para>
6051- Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
6052- </para>
6053- </remarks>
6054- </member>
6055- <member name="M:log4net.Appender.UdpAppender.OnClose">
6056- <summary>
6057- Closes the UDP connection and releases all resources associated with
6058- this <see cref="T:log4net.Appender.UdpAppender"/> instance.
6059- </summary>
6060- <remarks>
6061- <para>
6062- Disables the underlying <see cref="T:System.Net.Sockets.UdpClient"/> and releases all managed
6063- and unmanaged resources associated with the <see cref="T:log4net.Appender.UdpAppender"/>.
6064- </para>
6065- </remarks>
6066- </member>
6067- <member name="M:log4net.Appender.UdpAppender.InitializeClientConnection">
6068- <summary>
6069- Initializes the underlying <see cref="T:System.Net.Sockets.UdpClient"/> connection.
6070- </summary>
6071- <remarks>
6072- <para>
6073- The underlying <see cref="T:System.Net.Sockets.UdpClient"/> is initialized and binds to the
6074- port number from which you intend to communicate.
6075- </para>
6076- <para>
6077- Exceptions are passed to the <see cref="P:log4net.Appender.AppenderSkeleton.ErrorHandler"/>.
6078- </para>
6079- </remarks>
6080- </member>
6081- <member name="F:log4net.Appender.UdpAppender.m_remoteAddress">
6082- <summary>
6083- The IP address of the remote host or multicast group to which
6084- the logging event will be sent.
6085- </summary>
6086- </member>
6087- <member name="F:log4net.Appender.UdpAppender.m_remotePort">
6088- <summary>
6089- The TCP port number of the remote host or multicast group to
6090- which the logging event will be sent.
6091- </summary>
6092- </member>
6093- <member name="F:log4net.Appender.UdpAppender.m_remoteEndPoint">
6094- <summary>
6095- The cached remote endpoint to which the logging events will be sent.
6096- </summary>
6097- </member>
6098- <member name="F:log4net.Appender.UdpAppender.m_localPort">
6099- <summary>
6100- The TCP port number from which the <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
6101- </summary>
6102- </member>
6103- <member name="F:log4net.Appender.UdpAppender.m_client">
6104- <summary>
6105- The <see cref="T:System.Net.Sockets.UdpClient"/> instance that will be used for sending the
6106- logging events.
6107- </summary>
6108- </member>
6109- <member name="F:log4net.Appender.UdpAppender.m_encoding">
6110- <summary>
6111- The encoding to use for the packet.
6112- </summary>
6113- </member>
6114- <member name="P:log4net.Appender.UdpAppender.RemoteAddress">
6115- <summary>
6116- Gets or sets the IP address of the remote host or multicast group to which
6117- the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
6118- </summary>
6119- <value>
6120- The IP address of the remote host or multicast group to which the logging event
6121- will be sent.
6122- </value>
6123- <remarks>
6124- <para>
6125- Multicast addresses are identified by IP class <b>D</b> addresses (in the range 224.0.0.0 to
6126- 239.255.255.255). Multicast packets can pass across different networks through routers, so
6127- it is possible to use multicasts in an Internet scenario as long as your network provider
6128- supports multicasting.
6129- </para>
6130- <para>
6131- Hosts that want to receive particular multicast messages must register their interest by joining
6132- the multicast group. Multicast messages are not sent to networks where no host has joined
6133- the multicast group. Class <b>D</b> IP addresses are used for multicast groups, to differentiate
6134- them from normal host addresses, allowing nodes to easily detect if a message is of interest.
6135- </para>
6136- <para>
6137- Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below:
6138- </para>
6139- <para>
6140- <list type="table">
6141- <listheader>
6142- <term>IP Address</term>
6143- <description>Description</description>
6144- </listheader>
6145- <item>
6146- <term>224.0.0.1</term>
6147- <description>
6148- <para>
6149- Sends a message to all system on the subnet.
6150- </para>
6151- </description>
6152- </item>
6153- <item>
6154- <term>224.0.0.2</term>
6155- <description>
6156- <para>
6157- Sends a message to all routers on the subnet.
6158- </para>
6159- </description>
6160- </item>
6161- <item>
6162- <term>224.0.0.12</term>
6163- <description>
6164- <para>
6165- The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
6166- </para>
6167- </description>
6168- </item>
6169- </list>
6170- </para>
6171- <para>
6172- A complete list of actually reserved multicast addresses and their owners in the ranges
6173- defined by RFC 3171 can be found at the <A href="http://www.iana.org/assignments/multicast-addresses">IANA web site</A>.
6174- </para>
6175- <para>
6176- The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative
6177- addresses. These addresses can be reused with other local groups. Routers are typically
6178- configured with filters to prevent multicast traffic in this range from flowing outside
6179- of the local network.
6180- </para>
6181- </remarks>
6182- </member>
6183- <member name="P:log4net.Appender.UdpAppender.RemotePort">
6184- <summary>
6185- Gets or sets the TCP port number of the remote host or multicast group to which
6186- the underlying <see cref="T:System.Net.Sockets.UdpClient"/> should sent the logging event.
6187- </summary>
6188- <value>
6189- An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/>
6190- indicating the TCP port number of the remote host or multicast group to which the logging event
6191- will be sent.
6192- </value>
6193- <remarks>
6194- The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will send messages to this TCP port number
6195- on the remote host or multicast group.
6196- </remarks>
6197- <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
6198- </member>
6199- <member name="P:log4net.Appender.UdpAppender.LocalPort">
6200- <summary>
6201- Gets or sets the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
6202- </summary>
6203- <value>
6204- An integer value in the range <see cref="F:System.Net.IPEndPoint.MinPort"/> to <see cref="F:System.Net.IPEndPoint.MaxPort"/>
6205- indicating the TCP port number from which the underlying <see cref="T:System.Net.Sockets.UdpClient"/> will communicate.
6206- </value>
6207- <remarks>
6208- <para>
6209- The underlying <see cref="T:System.Net.Sockets.UdpClient"/> will bind to this port for sending messages.
6210- </para>
6211- <para>
6212- Setting the value to 0 (the default) will cause the udp client not to bind to
6213- a local port.
6214- </para>
6215- </remarks>
6216- <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than <see cref="F:System.Net.IPEndPoint.MinPort"/> or greater than <see cref="F:System.Net.IPEndPoint.MaxPort"/>.</exception>
6217- </member>
6218- <member name="P:log4net.Appender.UdpAppender.Encoding">
6219- <summary>
6220- Gets or sets <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
6221- </summary>
6222- <value>
6223- The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
6224- </value>
6225- <remarks>
6226- <para>
6227- The <see cref="P:log4net.Appender.UdpAppender.Encoding"/> used to write the packets.
6228- </para>
6229- </remarks>
6230- </member>
6231- <member name="P:log4net.Appender.UdpAppender.Client">
6232- <summary>
6233- Gets or sets the underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
6234- </summary>
6235- <value>
6236- The underlying <see cref="T:System.Net.Sockets.UdpClient"/>.
6237- </value>
6238- <remarks>
6239- <see cref="T:log4net.Appender.UdpAppender"/> creates a <see cref="T:System.Net.Sockets.UdpClient"/> to send logging events
6240- over a network. Classes deriving from <see cref="T:log4net.Appender.UdpAppender"/> can use this
6241- property to get or set this <see cref="T:System.Net.Sockets.UdpClient"/>. Use the underlying <see cref="T:System.Net.Sockets.UdpClient"/>
6242- returned from <see cref="P:log4net.Appender.UdpAppender.Client"/> if you require access beyond that which
6243- <see cref="T:log4net.Appender.UdpAppender"/> provides.
6244- </remarks>
6245- </member>
6246- <member name="P:log4net.Appender.UdpAppender.RemoteEndPoint">
6247- <summary>
6248- Gets or sets the cached remote endpoint to which the logging events should be sent.
6249- </summary>
6250- <value>
6251- The cached remote endpoint to which the logging events will be sent.
6252- </value>
6253- <remarks>
6254- The <see cref="M:log4net.Appender.UdpAppender.ActivateOptions"/> method will initialize the remote endpoint
6255- with the values of the <see cref="P:log4net.Appender.UdpAppender.RemoteAddress"/> and <see cref="P:log4net.Appender.UdpAppender.RemotePort"/>
6256- properties.
6257- </remarks>
6258- </member>
6259- <member name="P:log4net.Appender.UdpAppender.RequiresLayout">
6260- <summary>
6261- This appender requires a <see cref="N:log4net.Layout"/> to be set.
6262- </summary>
6263- <value><c>true</c></value>
6264- <remarks>
6265- <para>
6266- This appender requires a <see cref="N:log4net.Layout"/> to be set.
6267- </para>
6268- </remarks>
6269- </member>
62705531 <member name="F:log4net.Appender.RemoteSyslogAppender.DefaultSyslogPort">
62715532 <summary>
62725533 Syslog port 514
62735534 </summary>
62745535 </member>
6275- <member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferSize">
6276- <summary>
6277- Initial buffer size
6278- </summary>
6279- </member>
6280- <member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferMaxCapacity">
6281- <summary>
6282- Maximum buffer size before it is recycled
6283- </summary>
6284- </member>
6285- <member name="M:log4net.Appender.RemoteSyslogAppender.#ctor">
6286- <summary>
6287- Initializes a new instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class.
6288- </summary>
6289- <remarks>
6290- This instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender"/> class is set up to write
6291- to a remote syslog daemon.
6292- </remarks>
6293- </member>
6294- <member name="M:log4net.Appender.RemoteSyslogAppender.AddMapping(log4net.Appender.RemoteSyslogAppender.LevelSeverity)">
6295- <summary>
6296- Add a mapping of level to severity
6297- </summary>
6298- <param name="mapping">The mapping to add</param>
6299- <remarks>
6300- <para>
6301- Add a <see cref="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity"/> mapping to this appender.
6302- </para>
6303- </remarks>
6304- </member>
6305- <member name="M:log4net.Appender.RemoteSyslogAppender.Append(log4net.Core.LoggingEvent)">
6306- <summary>
6307- This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
6308- </summary>
6309- <param name="loggingEvent">The event to log.</param>
6310- <remarks>
6311- <para>
6312- Writes the event to a remote syslog daemon.
6313- </para>
6314- <para>
6315- The format of the output will depend on the appender's layout.
6316- </para>
6317- </remarks>
6318- </member>
6319- <member name="M:log4net.Appender.RemoteSyslogAppender.ActivateOptions">
6320- <summary>
6321- Initialize the options for this appender
6322- </summary>
6323- <remarks>
6324- <para>
6325- Initialize the level to syslog severity mappings set on this appender.
6326- </para>
6327- </remarks>
6328- </member>
6329- <member name="M:log4net.Appender.RemoteSyslogAppender.GetSeverity(log4net.Core.Level)">
6330- <summary>
6331- Translates a log4net level to a syslog severity.
6332- </summary>
6333- <param name="level">A log4net level.</param>
6334- <returns>A syslog severity.</returns>
6335- <remarks>
6336- <para>
6337- Translates a log4net level to a syslog severity.
6338- </para>
6339- </remarks>
6340- </member>
6341- <member name="M:log4net.Appender.RemoteSyslogAppender.GeneratePriority(log4net.Appender.RemoteSyslogAppender.SyslogFacility,log4net.Appender.RemoteSyslogAppender.SyslogSeverity)">
6342- <summary>
6343- Generate a syslog priority.
6344- </summary>
6345- <param name="facility">The syslog facility.</param>
6346- <param name="severity">The syslog severity.</param>
6347- <returns>A syslog priority.</returns>
6348- <remarks>
6349- <para>
6350- Generate a syslog priority.
6351- </para>
6352- </remarks>
6353- </member>
6354- <member name="F:log4net.Appender.RemoteSyslogAppender.m_facility">
6355- <summary>
6356- The facility. The default facility is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
6357- </summary>
6358- </member>
6359- <member name="F:log4net.Appender.RemoteSyslogAppender.m_identity">
6360- <summary>
6361- The message identity
6362- </summary>
6363- </member>
6364- <member name="F:log4net.Appender.RemoteSyslogAppender.m_levelMapping">
6365- <summary>
6366- Mapping from level object to syslog severity
6367- </summary>
6368- </member>
6369- <member name="P:log4net.Appender.RemoteSyslogAppender.Identity">
6370- <summary>
6371- Message identity
6372- </summary>
6373- <remarks>
6374- <para>
6375- An identifier is specified with each log message. This can be specified
6376- by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Identity"/> property. The identity (also know
6377- as the tag) must not contain white space. The default value for the
6378- identity is the application name (from <see cref="P:log4net.Core.LoggingEvent.Domain"/>).
6379- </para>
6380- </remarks>
6381- </member>
6382- <member name="P:log4net.Appender.RemoteSyslogAppender.Facility">
6383- <summary>
6384- Syslog facility
6385- </summary>
6386- <remarks>
6387- Set to one of the <see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/> values. The list of
6388- facilities is predefined and cannot be extended. The default value
6389- is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
6390- </remarks>
6391- </member>
63925536 <member name="T:log4net.Appender.RemoteSyslogAppender.SyslogSeverity">
63935537 <summary>
63945538 syslog severities
@@ -6569,6 +5713,123 @@
65695713 reserved for local use
65705714 </summary>
65715715 </member>
5716+ <member name="M:log4net.Appender.RemoteSyslogAppender.#ctor">
5717+ <summary>
5718+ Initializes a new instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender" /> class.
5719+ </summary>
5720+ <remarks>
5721+ This instance of the <see cref="T:log4net.Appender.RemoteSyslogAppender" /> class is set up to write
5722+ to a remote syslog daemon.
5723+ </remarks>
5724+ </member>
5725+ <member name="P:log4net.Appender.RemoteSyslogAppender.Identity">
5726+ <summary>
5727+ Message identity
5728+ </summary>
5729+ <remarks>
5730+ <para>
5731+ An identifier is specified with each log message. This can be specified
5732+ by setting the <see cref="P:log4net.Appender.RemoteSyslogAppender.Identity"/> property. The identity (also know
5733+ as the tag) must not contain white space. The default value for the
5734+ identity is the application name (from <see cref="P:log4net.Core.LoggingEvent.Domain"/>).
5735+ </para>
5736+ </remarks>
5737+ </member>
5738+ <member name="P:log4net.Appender.RemoteSyslogAppender.Facility">
5739+ <summary>
5740+ Syslog facility
5741+ </summary>
5742+ <remarks>
5743+ Set to one of the <see cref="T:log4net.Appender.RemoteSyslogAppender.SyslogFacility"/> values. The list of
5744+ facilities is predefined and cannot be extended. The default value
5745+ is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
5746+ </remarks>
5747+ </member>
5748+ <member name="M:log4net.Appender.RemoteSyslogAppender.AddMapping(log4net.Appender.RemoteSyslogAppender.LevelSeverity)">
5749+ <summary>
5750+ Add a mapping of level to severity
5751+ </summary>
5752+ <param name="mapping">The mapping to add</param>
5753+ <remarks>
5754+ <para>
5755+ Add a <see cref="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity"/> mapping to this appender.
5756+ </para>
5757+ </remarks>
5758+ </member>
5759+ <member name="M:log4net.Appender.RemoteSyslogAppender.Append(log4net.Core.LoggingEvent)">
5760+ <summary>
5761+ This method is called by the <see cref="M:AppenderSkeleton.DoAppend(LoggingEvent)"/> method.
5762+ </summary>
5763+ <param name="loggingEvent">The event to log.</param>
5764+ <remarks>
5765+ <para>
5766+ Writes the event to a remote syslog daemon.
5767+ </para>
5768+ <para>
5769+ The format of the output will depend on the appender's layout.
5770+ </para>
5771+ </remarks>
5772+ </member>
5773+ <member name="M:log4net.Appender.RemoteSyslogAppender.ActivateOptions">
5774+ <summary>
5775+ Initialize the options for this appender
5776+ </summary>
5777+ <remarks>
5778+ <para>
5779+ Initialize the level to syslog severity mappings set on this appender.
5780+ </para>
5781+ </remarks>
5782+ </member>
5783+ <member name="M:log4net.Appender.RemoteSyslogAppender.GetSeverity(log4net.Core.Level)">
5784+ <summary>
5785+ Translates a log4net level to a syslog severity.
5786+ </summary>
5787+ <param name="level">A log4net level.</param>
5788+ <returns>A syslog severity.</returns>
5789+ <remarks>
5790+ <para>
5791+ Translates a log4net level to a syslog severity.
5792+ </para>
5793+ </remarks>
5794+ </member>
5795+ <member name="M:log4net.Appender.RemoteSyslogAppender.GeneratePriority(log4net.Appender.RemoteSyslogAppender.SyslogFacility,log4net.Appender.RemoteSyslogAppender.SyslogSeverity)">
5796+ <summary>
5797+ Generate a syslog priority.
5798+ </summary>
5799+ <param name="facility">The syslog facility.</param>
5800+ <param name="severity">The syslog severity.</param>
5801+ <returns>A syslog priority.</returns>
5802+ <remarks>
5803+ <para>
5804+ Generate a syslog priority.
5805+ </para>
5806+ </remarks>
5807+ </member>
5808+ <member name="F:log4net.Appender.RemoteSyslogAppender.m_facility">
5809+ <summary>
5810+ The facility. The default facility is <see cref="F:log4net.Appender.RemoteSyslogAppender.SyslogFacility.User"/>.
5811+ </summary>
5812+ </member>
5813+ <member name="F:log4net.Appender.RemoteSyslogAppender.m_identity">
5814+ <summary>
5815+ The message identity
5816+ </summary>
5817+ </member>
5818+ <member name="F:log4net.Appender.RemoteSyslogAppender.m_levelMapping">
5819+ <summary>
5820+ Mapping from level object to syslog severity
5821+ </summary>
5822+ </member>
5823+ <member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferSize">
5824+ <summary>
5825+ Initial buffer size
5826+ </summary>
5827+ </member>
5828+ <member name="F:log4net.Appender.RemoteSyslogAppender.c_renderBufferMaxCapacity">
5829+ <summary>
5830+ Maximum buffer size before it is recycled
5831+ </summary>
5832+ </member>
65725833 <member name="T:log4net.Appender.RemoteSyslogAppender.LevelSeverity">
65735834 <summary>
65745835 A class to act as a mapping between the level that a logging call is made at and
@@ -6635,7 +5896,7 @@
66355896 <see cref="M:log4net.Core.LoggerManager.Shutdown"/> for details on how to shutdown
66365897 log4net programmatically.</para>
66375898 </remarks>
6638- <seealso cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
5899+ <seealso cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink" />
66395900 <author>Nicko Cadell</author>
66405901 <author>Gert Driesen</author>
66415902 <author>Daniel Cazzulino</author>
@@ -6642,7 +5903,7 @@
66425903 </member>
66435904 <member name="M:log4net.Appender.RemotingAppender.#ctor">
66445905 <summary>
6645- Initializes a new instance of the <see cref="T:log4net.Appender.RemotingAppender"/> class.
5906+ Initializes a new instance of the <see cref="T:log4net.Appender.RemotingAppender" /> class.
66465907 </summary>
66475908 <remarks>
66485909 <para>
@@ -6650,6 +5911,22 @@
66505911 </para>
66515912 </remarks>
66525913 </member>
5914+ <member name="P:log4net.Appender.RemotingAppender.Sink">
5915+ <summary>
5916+ Gets or sets the URL of the well-known object that will accept
5917+ the logging events.
5918+ </summary>
5919+ <value>
5920+ The well-known URL of the remote sink.
5921+ </value>
5922+ <remarks>
5923+ <para>
5924+ The URL of the remoting sink that will accept logging events.
5925+ The sink must implement the <see cref="T:log4net.Appender.RemotingAppender.IRemoteLoggingSink"/>
5926+ interface.
5927+ </para>
5928+ </remarks>
5929+ </member>
66535930 <member name="M:log4net.Appender.RemotingAppender.ActivateOptions">
66545931 <summary>
66555932 Initialize the appender based on the options set
@@ -6709,6 +5986,13 @@
67095986 event handler is allowed to run for.</para>
67105987 </remarks>
67115988 </member>
5989+ <member name="M:log4net.Appender.RemotingAppender.Flush(System.Int32)">
5990+ <summary>
5991+ Flushes any buffered log data.
5992+ </summary>
5993+ <param name="millisecondsTimeout">The maximum time to wait for logging events to be flushed.</param>
5994+ <returns><c>True</c> if all logging events were flushed successfully, else <c>false</c>.</returns>
5995+ </member>
67125996 <member name="M:log4net.Appender.RemotingAppender.BeginAsyncSend">
67135997 <summary>
67145998 A work item is being queued into the thread pool
@@ -6754,22 +6038,6 @@
67546038 state it is safe to close the appender.
67556039 </remarks>
67566040 </member>
6757- <member name="P:log4net.Appender.RemotingAppender.Sink">
6758- <summary>
6759- Gets or sets the URL of the well-known object that will accept
6760- the logging events.
6761- </summary>
6762- <value>
6763- The well-known URL of the remote sink.
6764- </value>
6765- <remarks>
6766- <para>
6767- The URL of the remoting sink that will accept logging events.
6768