nicko 2004/12/05 18:20:07
Modified: src/Core ErrorCode.cs IAppenderAttachable.cs
IErrorHandler.cs IFixingRequired.cs ILogger.cs
ILoggerWrapper.cs IOptionHandler.cs
ITriggeringEventEvaluator.cs Level.cs
LevelCollection.cs LevelEvaluator.cs LevelMap.cs
LocationInfo.cs LogException.cs LogImpl.cs
LoggerManager.cs LoggerWrapperImpl.cs
LoggingEvent.cs SecurityContext.cs
SecurityContextProvider.cs WrapperMap.cs
Log:
Updated doc comments
Revision Changes Path
1.3 +5 -0 logging-log4net/src/Core/ErrorCode.cs
Index: ErrorCode.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/ErrorCode.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ErrorCode.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ ErrorCode.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -21,6 +21,11 @@
/// <summary>
/// Defined error codes that can be passed to the <see
cref="IErrorHandler.Error"/> method.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Values passed to the <see cref="IErrorHandler.Error"/> method.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public enum ErrorCode : int
{
1.4 +37 -6 logging-log4net/src/Core/IAppenderAttachable.cs
Index: IAppenderAttachable.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/IAppenderAttachable.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- IAppenderAttachable.cs 26 Sep 2004 22:39:38 -0000 1.3
+++ IAppenderAttachable.cs 6 Dec 2004 02:20:06 -0000 1.4
@@ -25,6 +25,11 @@
/// <summary>
/// Interface for attaching appenders to objects.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Interface for attaching, removing and retrieving appenders.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public interface IAppenderAttachable
@@ -32,16 +37,29 @@
/// <summary>
/// Attaches an appender.
/// </summary>
- /// <param name="newAppender">The appender to add.</param>
- void AddAppender(IAppender newAppender);
+ /// <param name="appender">The appender to add.</param>
+ /// <remarks>
+ /// <para>
+ /// Add the specified appender. The implementation may
+ /// choose to allow or deny duplicate appenders.
+ /// </para>
+ /// </remarks>
+ void AddAppender(IAppender appender);
/// <summary>
/// Gets all attached appenders.
/// </summary>
- /// <returns>
- /// A collection of attached appenders, or <c>null</c> if there
- /// are no attached appenders.
- /// </returns>
+ /// <value>
+ /// A collection of attached appenders.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets a collection of attached appenders.
+ /// If there are no attached appenders the
+ /// implementation should return an empty
+ /// collection rather than <c>null</c>.
+ /// </para>
+ /// </remarks>
AppenderCollection Appenders {get;}
/// <summary>
@@ -52,13 +70,22 @@
/// The appender with the name specified, or <c>null</c> if no
appender with the
/// specified name is found.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Returns an attached appender with the <paramref
name="name"/> specified.
+ /// If no appender with the specified name is found <c>null</c>
will be
+ /// returned.
+ /// </para>
+ /// </remarks>
IAppender GetAppender(string name);
/// <summary>
/// Removes all attached appenders.
/// </summary>
/// <remarks>
+ /// <para>
/// Removes and closes all attached appenders
+ /// </para>
/// </remarks>
void RemoveAllAppenders();
@@ -68,9 +95,11 @@
/// <param name="appender">The appender to remove.</param>
/// <returns>The appender removed from the list</returns>
/// <remarks>
+ /// <para>
/// The appender removed is not closed.
/// If you are discarding the appender you must call
/// <see cref="IAppender.Close"/> on the appender removed.
+ /// </para>
/// </remarks>
IAppender RemoveAppender(IAppender appender);
@@ -80,9 +109,11 @@
/// <param name="name">The name of the appender to
remove.</param>
/// <returns>The appender removed from the list</returns>
/// <remarks>
+ /// <para>
/// The appender removed is not closed.
/// If you are discarding the appender you must call
/// <see cref="IAppender.Close"/> on the appender removed.
+ /// </para>
/// </remarks>
IAppender RemoveAppender(string name);
}
1.3 +18 -0 logging-log4net/src/Core/IErrorHandler.cs
Index: IErrorHandler.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/IErrorHandler.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- IErrorHandler.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ IErrorHandler.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -24,8 +24,10 @@
/// Appenders may delegate their error handling to an <see
cref="IErrorHandler" />.
/// </summary>
/// <remarks>
+ /// <para>
/// Error handling is a particularly tedious to get right because by
/// definition errors are hard to predict and to reproduce.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
@@ -38,6 +40,12 @@
/// <param name="message">The message associated with the
error.</param>
/// <param name="e">The <see cref="Exception" /> that was
thrown when the error occurred.</param>
/// <param name="errorCode">The error code associated with the
error.</param>
+ /// <remarks>
+ /// <para>
+ /// Handles the error and information about the error condition
is passed as
+ /// a parameter.
+ /// </para>
+ /// </remarks>
void Error(string message, Exception e, ErrorCode errorCode);
/// <summary>
@@ -45,12 +53,22 @@
/// </summary>
/// <param name="message">The message associated with the
error.</param>
/// <param name="e">The <see cref="Exception" /> that was
thrown when the error occurred.</param>
+ /// <remarks>
+ /// <para>
+ /// See <see cref="Error(string,Exception,ErrorCode)"/>.
+ /// </para>
+ /// </remarks>
void Error(string message, Exception e);
/// <summary>
/// Prints the error message passed as a parameter.
/// </summary>
/// <param name="message">The message associated with the
error.</param>
+ /// <remarks>
+ /// <para>
+ /// See <see cref="Error(string,Exception,ErrorCode)"/>.
+ /// </para>
+ /// </remarks>
void Error(string message);
}
}
1.2 +23 -2 logging-log4net/src/Core/IFixingRequired.cs
Index: IFixingRequired.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/IFixingRequired.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IFixingRequired.cs 9 Sep 2004 21:53:13 -0000 1.1
+++ IFixingRequired.cs 6 Dec 2004 02:20:06 -0000 1.2
@@ -21,9 +21,23 @@
namespace log4net.Core
{
/// <summary>
- /// Interface that indicates that the object requires fixing before it
- /// can be taken outside the context of the appender's DoAppend method.
+ /// Interface for objects that require fixing.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Interface that indicates that the object requires fixing before it
+ /// can be taken outside the context of the appender's
+ /// <see cref="log4net.Appender.IAppender.DoAppend"/> method.
+ /// </para>
+ /// <para>
+ /// When objects that implement this interface are stored
+ /// in the context properties maps <see cref="log4net.GlobalContext"/>
+ /// <see cref="log4net.GlobalContext.Properties"/> and <see
cref="log4net.ThreadContext"/>
+ /// <see cref="log4net.ThreadContext.Properties"/> are fixed
+ /// (see <see cref="LoggingEvent.Fix"/>) the <see
cref="GetFixedObject"/>
+ /// method will be called.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public interface IFixingRequired
{
@@ -31,6 +45,13 @@
/// Get a portable version of this object
/// </summary>
/// <returns>the portable instance of this object</returns>
+ /// <remarks>
+ /// <para>
+ /// Get a portable instance object that represents the current
+ /// state of this object. The portable object can be stored
+ /// and logged from any thread with identical results.
+ /// </para>
+ /// </remarks>
object GetFixedObject();
}
}
1.4 +34 -6 logging-log4net/src/Core/ILogger.cs
Index: ILogger.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/ILogger.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ILogger.cs 19 Sep 2004 17:52:54 -0000 1.3
+++ ILogger.cs 6 Dec 2004 02:20:06 -0000 1.4
@@ -24,8 +24,14 @@
namespace log4net.Core
{
/// <summary>
- /// Interface that all loggers should implement.
+ /// Interface that all loggers implement
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// This interface supports logging events and testing if a level
+ /// is enabled for logging.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
public interface ILogger
@@ -36,6 +42,11 @@
/// <value>
/// The name of the logger.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// The name of this logger
+ /// </para>
+ /// </remarks>
string Name { get; }
/// <summary>
@@ -45,12 +56,14 @@
/// the stack boundary into the logging system for this
call.</param>
/// <param name="level">The level of the message to be
logged.</param>
/// <param name="message">The message object to log.</param>
- /// <param name="t">the exception to log, including its stack
trace. Pass <c>null</c> to not log an exception.</param>
+ /// <param name="exception">the exception to log, including its
stack trace. Pass <c>null</c> to not log an exception.</param>
/// <remarks>
+ /// <para>
/// Generates a logging event for the specified <paramref
name="level"/> using
- /// the <paramref name="message"/> and <paramref name="t"/>.
+ /// the <paramref name="message"/> and <paramref
name="exception"/>.
+ /// </para>
/// </remarks>
- void Log(Type callerStackBoundaryDeclaringType, Level level,
object message, Exception t);
+ void Log(Type callerStackBoundaryDeclaringType, Level level,
object message, Exception exception);
/// <summary>
/// This is the most generic printing method that is intended
to be used
@@ -58,7 +71,9 @@
/// </summary>
/// <param name="logEvent">The event being logged.</param>
/// <remarks>
- /// Logs the specified logging event.
+ /// <para>
+ /// Logs the specified logging event through this logger.
+ /// </para>
/// </remarks>
void Log(LoggingEvent logEvent);
@@ -69,13 +84,26 @@
/// <returns>
/// <c>true</c> if this logger is enabled for <c>level</c>,
otherwise <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Test if this logger is going to log events of the specified
<paramref name="level"/>.
+ /// </para>
+ /// </remarks>
bool IsEnabledFor(Level level);
/// <summary>
/// Gets the <see cref="ILoggerRepository"/> where this
/// <c>Logger</c> instance is attached to.
/// </summary>
- /// <value>The <see cref="ILoggerRepository" /> that this
logger belongs to.</value>
+ /// <value>
+ /// The <see cref="ILoggerRepository" /> that this logger
belongs to.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the <see cref="ILoggerRepository"/> where this
+ /// <c>Logger</c> instance is attached to.
+ /// </para>
+ /// </remarks>
ILoggerRepository Repository { get; }
}
}
1.3 +8 -2 logging-log4net/src/Core/ILoggerWrapper.cs
Index: ILoggerWrapper.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/ILoggerWrapper.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ILoggerWrapper.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ ILoggerWrapper.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -28,8 +28,12 @@
/// Base interface for all wrappers
/// </summary>
/// <remarks>
- /// <para>Base interface for all wrappers</para>
- /// <para>All wrappers must extend this interface</para>
+ /// <para>
+ /// Base interface for all wrappers.
+ /// </para>
+ /// <para>
+ /// All wrappers must implement this interface.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
public interface ILoggerWrapper
@@ -41,11 +45,13 @@
/// The <see cref="ILogger"/> object that in implementing this
object.
/// </value>
/// <remarks>
+ /// <para>
/// The <see cref="ILogger"/> object that in implementing this
/// object. The <c>Logger</c> object may not
/// be the same object as this object because of logger
decorators.
/// This gets the actual underlying objects that is used to
process
/// the log events.
+ /// </para>
/// </remarks>
ILogger Logger { get; }
}
1.4 +13 -1 logging-log4net/src/Core/IOptionHandler.cs
Index: IOptionHandler.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/IOptionHandler.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- IOptionHandler.cs 30 May 2004 11:06:12 -0000 1.3
+++ IOptionHandler.cs 6 Dec 2004 02:20:06 -0000 1.4
@@ -21,8 +21,20 @@
namespace log4net.Core
{
/// <summary>
- /// A string based interface to configure components.
+ /// Interface used to delay activate a configured object.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// This allows an object to defer activation of its options until all
+ /// options have been set. This is required for components which have
+ /// related options that remain ambiguous until all are set.
+ /// </para>
+ /// <para>
+ /// If a component implements this interface then the <see
cref="ActivateOptions"/> method
+ /// must be called by the container after its all the configured
properties have been set
+ /// and before the component can be used.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public interface IOptionHandler
{
1.3 +9 -3 logging-log4net/src/Core/ITriggeringEventEvaluator.cs
Index: ITriggeringEventEvaluator.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/ITriggeringEventEvaluator.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ITriggeringEventEvaluator.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ ITriggeringEventEvaluator.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -21,23 +21,29 @@
namespace log4net.Core
{
/// <summary>
- /// Implementations of this interface allow certain appenders to decide
- /// when to perform an appender specific action.
+ /// Test if an <see cref="LoggingEvent"/> triggers an action
/// </summary>
/// <remarks>
+ /// <para>
/// Implementations of this interface allow certain appenders to decide
/// when to perform an appender specific action.
+ /// </para>
+ /// <para>
+ /// The action or behavior triggered is defined by the implementation.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
public interface ITriggeringEventEvaluator
{
/// <summary>
- /// Is this the triggering event?
+ /// Test if this event triggers the action
/// </summary>
/// <param name="loggingEvent">The event to check</param>
/// <returns><c>true</c> if this event triggers the action,
otherwise <c>false</c></returns>
/// <remarks>
+ /// <para>
/// Return <c>true</c> if this event triggers the action
+ /// </para>
/// </remarks>
bool IsTriggeringEvent(LoggingEvent loggingEvent);
}
1.6 +110 -33 logging-log4net/src/Core/Level.cs
Index: Level.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/Level.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Level.cs 21 Oct 2004 22:15:46 -0000 1.5
+++ Level.cs 6 Dec 2004 02:20:06 -0000 1.6
@@ -25,34 +25,34 @@
/// Defines the default set of levels recognized by the system.
/// </summary>
/// <remarks>
- /// <p>
+ /// <para>
/// Each <see cref="LoggingEvent"/> has an associated <see
cref="Level"/>.
- /// </p>
- /// <p>
+ /// </para>
+ /// <para>
/// Levels have a numeric <see cref="Level.Value"/> that defines the
relative
/// ordering between levels. Two Levels with the same <see
cref="Level.Value"/>
- /// are demmed to be equivalent.
- /// </p>
- /// <p>
- /// The levels that are recognised by log4net are set for each <see
cref="log4net.Repository.ILoggerRepository"/>
+ /// are deemed to be equivalent.
+ /// </para>
+ /// <para>
+ /// The levels that are recognized by log4net are set for each <see
cref="log4net.Repository.ILoggerRepository"/>
/// and each repository can have different levels defined. The levels
are stored
/// in the <see cref="log4net.Repository.ILoggerRepository.LevelMap"/>
on the repository. Levels are
/// looked up by name from the <see
cref="log4net.Repository.ILoggerRepository.LevelMap"/>.
- /// </p>
- /// <p>
+ /// </para>
+ /// <para>
/// When logging at level INFO the actual level used is not <see
cref="Level.Info"/> but
/// the value of <c>LoggerRepository.LevelMap["INFO"]</c>. The default
value for this is
/// <see cref="Level.Info"/>, but this can be changed by reconfiguring
the level map.
- /// </p>
- /// <p>
+ /// </para>
+ /// <para>
/// Each level has a <see cref="DisplayName"/> in addition to its <see
cref="Name"/>. The
/// <see cref="DisplayName"/> is the string that is written into the
output log. By default
/// the display name is the same as the level name, but this can be
used to alias levels
- /// or to localise the log output.
- /// </p>
- /// <p>
+ /// or to localize the log output.
+ /// </para>
+ /// <para>
/// Some of the predefined levels recognized by the system are:
- /// </p>
+ /// </para>
/// <list type="bullet">
/// <item>
/// <description><see cref="Off"/>.</description>
@@ -87,12 +87,17 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="Level" />
class with
- /// the specified level name and value.
+ /// Constructor
/// </summary>
/// <param name="level">Integer value for this level, higher
values represent more severe levels.</param>
/// <param name="levelName">The string name of this
level.</param>
- /// <param name="displayName">The display name for this level.
This may be localised or otherwise different from the name</param>
+ /// <param name="displayName">The display name for this level.
This may be localized or otherwise different from the name</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="Level" />
class with
+ /// the specified level name and value.
+ /// </para>
+ /// </remarks>
public Level(int level, string levelName, string displayName)
{
if (levelName == null)
@@ -110,11 +115,16 @@
}
/// <summary>
- /// Initializes a new instance of the <see cref="Level" />
class with
- /// the specified level name and value.
+ /// Constructor
/// </summary>
/// <param name="level">Integer value for this level, higher
values represent more severe levels.</param>
/// <param name="levelName">The string name of this
level.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="Level" />
class with
+ /// the specified level name and value.
+ /// </para>
+ /// </remarks>
public Level(int level, string levelName) : this(level,
levelName, levelName)
{
}
@@ -124,33 +134,48 @@
#region Public Instance Properties
/// <summary>
- /// Gets the name of the level.
+ /// Gets the name of this level.
/// </summary>
/// <value>
- /// The name of the level.
+ /// The name of this level.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the name of this level.
+ /// </para>
+ /// </remarks>
public string Name
{
get { return m_levelName; }
}
/// <summary>
- /// Gets the value of the level.
+ /// Gets the value of this level.
/// </summary>
/// <value>
- /// The value of the level.
+ /// The value of this level.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the value of this level.
+ /// </para>
+ /// </remarks>
public int Value
{
get { return m_levelValue; }
}
/// <summary>
- /// Gets the display name of the level.
+ /// Gets the display name of this level.
/// </summary>
/// <value>
- /// The display name of the level.
+ /// The display name of this level.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the display name of this level.
+ /// </para>
+ /// </remarks>
public string DisplayName
{
get { return m_levelDisplayName; }
@@ -167,18 +192,28 @@
/// <returns>
/// A <see cref="string" /> representation of the current <see
cref="Level" />.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Returns the level <see cref="Name"/>.
+ /// </para>
+ /// </remarks>
override public string ToString()
{
return m_levelName;
}
/// <summary>
- /// Compares the levels of <see cref="Level" /> instances, and
- /// defers to base class if the target object is not a <see
cref="Level" />
- /// instance.
+ /// Compares levels.
/// </summary>
/// <param name="o">The object to compare against.</param>
/// <returns><c>true</c> if the objects are equal.</returns>
+ /// <remarks>
+ /// <para>
+ /// Compares the levels of <see cref="Level" /> instances, and
+ /// defers to base class if the target object is not a <see
cref="Level" />
+ /// instance.
+ /// </para>
+ /// </remarks>
override public bool Equals(object o)
{
Level otherLevel = o as Level;
@@ -193,10 +228,18 @@
}
/// <summary>
- /// Returns a hash code suitable for use in hashing algorithms
and data
- /// structures like a hash table.
+ /// Returns a hash code
/// </summary>
/// <returns>A hash code for the current <see cref="Level"
/>.</returns>
+ /// <remarks>
+ /// <para>
+ /// Returns a hash code suitable for use in hashing algorithms
and data
+ /// structures like a hash table.
+ /// </para>
+ /// <para>
+ /// Returns the hash code of the level <see cref="Value"/>.
+ /// </para>
+ /// </remarks>
override public int GetHashCode()
{
return m_levelValue;
@@ -267,6 +310,11 @@
/// <c>true</c> if <paramref name="l" /> is greater than
/// <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator > (Level l, Level r)
{
return l.m_levelValue > r.m_levelValue;
@@ -282,6 +330,11 @@
/// <c>true</c> if <paramref name="l" /> is less than
/// <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator < (Level l, Level r)
{
return l.m_levelValue < r.m_levelValue;
@@ -297,6 +350,11 @@
/// <c>true</c> if <paramref name="l" /> is greater than or
equal to
/// <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator >= (Level l, Level r)
{
return l.m_levelValue >= r.m_levelValue;
@@ -312,6 +370,11 @@
/// <c>true</c> if <paramref name="l" /> is less than or equal
to
/// <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator <= (Level l, Level r)
{
return l.m_levelValue <= r.m_levelValue;
@@ -327,6 +390,11 @@
/// <c>true</c> if the value of <paramref name="l" /> is the
same as the
/// value of <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator == (Level l, Level r)
{
if (((object)l) != null && ((object)r) != null)
@@ -349,6 +417,11 @@
/// <c>true</c> if the value of <paramref name="l" /> is
different from
/// the value of <paramref name="r" />; otherwise, <c>false</c>.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static bool operator != (Level l, Level r)
{
return !(l==r);
@@ -385,6 +458,11 @@
/// </item>
/// </list>
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Compares two levels.
+ /// </para>
+ /// </remarks>
public static int Compare(Level l, Level r)
{
if (l == null && r == null)
@@ -408,8 +486,7 @@
#region Public Static Fields
/// <summary>
- /// The <see cref="Off" /> level designates a higher level than
all the
- /// rest.
+ /// The <see cref="Off" /> level designates a higher level than
all the rest.
/// </summary>
public readonly static Level Off = new Level(int.MaxValue,
"OFF");
1.7 +6 -6 logging-log4net/src/Core/LevelCollection.cs
Index: LevelCollection.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LevelCollection.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- LevelCollection.cs 7 Jun 2004 01:02:39 -0000 1.6
+++ LevelCollection.cs 6 Dec 2004 02:20:06 -0000 1.7
@@ -44,13 +44,13 @@
/// <summary>
/// Advances the enumerator to the next element in the
collection.
/// </summary>
- /// <exception cref="InvalidOperationException">
- /// The collection was modified after the enumerator
was created.
- /// </exception>
/// <returns>
/// <c>true</c> if the enumerator was successfully
advanced to the next element;
/// <c>false</c> if the enumerator has passed the end
of the collection.
/// </returns>
+ /// <exception cref="InvalidOperationException">
+ /// The collection was modified after the enumerator
was created.
+ /// </exception>
bool MoveNext();
/// <summary>
@@ -690,13 +690,13 @@
/// <summary>
/// Advances the enumerator to the next element in the
collection.
/// </summary>
- /// <exception cref="InvalidOperationException">
- /// The collection was modified after the enumerator
was created.
- /// </exception>
/// <returns>
/// <c>true</c> if the enumerator was successfully
advanced to the next element;
/// <c>false</c> if the enumerator has passed the end
of the collection.
/// </returns>
+ /// <exception cref="InvalidOperationException">
+ /// The collection was modified after the enumerator
was created.
+ /// </exception>
public bool MoveNext()
{
if (m_version != m_collection.m_version)
1.3 +26 -14 logging-log4net/src/Core/LevelEvaluator.cs
Index: LevelEvaluator.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LevelEvaluator.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LevelEvaluator.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ LevelEvaluator.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -26,10 +26,12 @@
/// An evaluator that triggers at a threshold level
/// </summary>
/// <remarks>
- /// <para>This evaluator will trigger if the level of the event
+ /// <para>
+ /// This evaluator will trigger if the level of the event
/// passed to <see cref="IsTriggeringEvent(LoggingEvent)"/>
/// is equal to or greater than the <see cref="Threshold"/>
- /// level.</para>
+ /// level.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
public class LevelEvaluator : ITriggeringEventEvaluator
@@ -43,12 +45,15 @@
/// Create a new evaluator using the <see cref="Level.Off"/>
threshold.
/// </summary>
/// <remarks>
- /// <para>Create a new evaluator using the <see
cref="Level.Off"/> threshold.</para>
- ///
- /// <para>This evaluator will trigger if the level of the event
+ /// <para>
+ /// Create a new evaluator using the <see cref="Level.Off"/>
threshold.
+ /// </para>
+ /// <para>
+ /// This evaluator will trigger if the level of the event
/// passed to <see cref="IsTriggeringEvent(LoggingEvent)"/>
/// is equal to or greater than the <see cref="Threshold"/>
- /// level.</para>
+ /// level.
+ /// </para>
/// </remarks>
public LevelEvaluator() : this(Level.Off)
{
@@ -59,12 +64,15 @@
/// </summary>
/// <param name="threshold">the threshold to trigger at</param>
/// <remarks>
- /// <para>Create a new evaluator using the specified <see
cref="Level"/> threshold.</para>
- ///
- /// <para>This evaluator will trigger if the level of the event
+ /// <para>
+ /// Create a new evaluator using the specified <see
cref="Level"/> threshold.
+ /// </para>
+ /// <para>
+ /// This evaluator will trigger if the level of the event
/// passed to <see cref="IsTriggeringEvent(LoggingEvent)"/>
/// is equal to or greater than the <see cref="Threshold"/>
- /// level.</para>
+ /// level.
+ /// </para>
/// </remarks>
public LevelEvaluator(Level threshold)
{
@@ -83,10 +91,12 @@
/// The <see cref="Level"/> that will cause this evaluator to
trigger
/// </value>
/// <remarks>
- /// <para>This evaluator will trigger if the level of the event
+ /// <para>
+ /// This evaluator will trigger if the level of the event
/// passed to <see cref="IsTriggeringEvent(LoggingEvent)"/>
/// is equal to or greater than the <see cref="Threshold"/>
- /// level.</para>
+ /// level.
+ /// </para>
/// </remarks>
public Level Threshold
{
@@ -102,10 +112,12 @@
/// is equal or higher than the <see cref="Threshold"/>.
/// Otherwise it returns <c>false</c></returns>
/// <remarks>
- /// <para>This evaluator will trigger if the level of the event
+ /// <para>
+ /// This evaluator will trigger if the level of the event
/// passed to <see cref="IsTriggeringEvent(LoggingEvent)"/>
/// is equal to or greater than the <see cref="Threshold"/>
- /// level.</para>
+ /// level.
+ /// </para>
/// </remarks>
public bool IsTriggeringEvent(LoggingEvent loggingEvent)
{
1.7 +44 -32 logging-log4net/src/Core/LevelMap.cs
Index: LevelMap.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LevelMap.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- LevelMap.cs 21 Oct 2004 22:15:46 -0000 1.6
+++ LevelMap.cs 6 Dec 2004 02:20:06 -0000 1.7
@@ -28,9 +28,11 @@
/// Mapping between string name and Level object
/// </summary>
/// <remarks>
- /// Mapping between string name and Level object.
- /// This mapping is held separately for each ILoggerRepository.
+ /// <para>
+ /// Mapping between string name and <see cref="Level"/> object.
+ /// This mapping is held separately for each <see
cref="log4net.Repository.ILoggerRepository"/>.
/// The level name is case insensitive.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
public sealed class LevelMap
@@ -43,18 +45,15 @@
/// </summary>
private Hashtable m_mapName2Level = new
Hashtable(CaseInsensitiveHashCodeProvider.Default,
CaseInsensitiveComparer.Default);
-// /// <summary>
-// /// Mapping from level value to Level object
-// /// </summary>
-// private Hashtable m_mapValue2Level = new Hashtable();
-
#endregion
/// <summary>
/// Construct the level map
/// </summary>
/// <remarks>
+ /// <para>
/// Construct the level map.
+ /// </para>
/// </remarks>
public LevelMap()
{
@@ -64,13 +63,14 @@
/// Clear the internal maps of all levels
/// </summary>
/// <remarks>
+ /// <para>
/// Clear the internal maps of all levels
+ /// </para>
/// </remarks>
public void Clear()
{
// Clear all current levels
m_mapName2Level.Clear();
-// m_mapValue2Level.Clear();
}
/// <summary>
@@ -79,9 +79,11 @@
/// <param name="name">The name of the Level to lookup</param>
/// <returns>a Level from the map with the name
specified</returns>
/// <remarks>
+ /// <para>
/// Returns the <see cref="Level"/> from the
/// map with the name specified. If the no level is
/// found then <c>null</c> is returned.
+ /// </para>
/// </remarks>
public Level this[string name]
{
@@ -99,32 +101,17 @@
}
}
-// /// <summary>
-// /// Lookup a <see cref="Level"/> by value
-// /// </summary>
-// /// <param name="value">The value of the Level to lookup</param>
-// /// <returns>a Level from the map with the value
specified</returns>
-// /// <remarks>
-// /// Returns the <see cref="Level"/> from the
-// /// map with the value specified. If the no level is
-// /// found then <c>null</c> is returned.
-// /// </remarks>
-// public Level this[int value]
-// {
-// get
-// {
-// lock(this)
-// {
-// return (Level)m_mapValue2Level[value];
-// }
-// }
-// }
-
/// <summary>
/// Create a new Level and add it to the map
/// </summary>
/// <param name="name">the string to display for the
Level</param>
/// <param name="value">the level value to give to the
Level</param>
+ /// <remarks>
+ /// <para>
+ /// Create a new Level and add it to the map
+ /// </para>
+ /// </remarks>
+ /// <seealso cref="Add(string,int,string)"/>
public void Add(string name, int value)
{
Add(name, value, null);
@@ -136,6 +123,11 @@
/// <param name="name">the string to display for the
Level</param>
/// <param name="value">the level value to give to the
Level</param>
/// <param name="displayName">the display name to give to the
Level</param>
+ /// <remarks>
+ /// <para>
+ /// Create a new Level and add it to the map
+ /// </para>
+ /// </remarks>
public void Add(string name, int value, string displayName)
{
if (name == null)
@@ -156,9 +148,14 @@
}
/// <summary>
- /// Add a Level it to the map
+ /// Add a Level to the map
/// </summary>
/// <param name="level">the Level to add</param>
+ /// <remarks>
+ /// <para>
+ /// Add a Level to the map
+ /// </para>
+ /// </remarks>
public void Add(Level level)
{
if (level == null)
@@ -168,7 +165,6 @@
lock(this)
{
m_mapName2Level[level.Name] = level;
-// m_mapValue2Level[level.Value] = level;
}
}
@@ -176,6 +172,11 @@
/// Return all possible levels as a list of Level objects.
/// </summary>
/// <returns>all possible levels as a list of Level
objects</returns>
+ /// <remarks>
+ /// <para>
+ /// Return all possible levels as a list of Level objects.
+ /// </para>
+ /// </remarks>
public LevelCollection AllLevels
{
get
@@ -193,6 +194,18 @@
/// <param name="defaultLevel">the name of the level to lookup
is taken from this level.
/// If the level is not set on the map then this level is
added</param>
/// <returns>the level in the map with the name
specified</returns>
+ /// <remarks>
+ /// <para>
+ /// Lookup a named level from the map. The name of the level to
lookup is taken
+ /// from the <see cref="Level.Name"/> property of the <paramref
name="defaultLevel"/>
+ /// argument.
+ /// </para>
+ /// <para>
+ /// If no level with the specified name is found then the
+ /// <paramref name="defaultLevel"/> argument is added to the
level map
+ /// and returned.
+ /// </para>
+ /// </remarks>
public Level LookupWithDefault(Level defaultLevel)
{
if (defaultLevel == null)
@@ -211,6 +224,5 @@
return level;
}
}
-
}
}
1.6 +50 -12 logging-log4net/src/Core/LocationInfo.cs
Index: LocationInfo.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LocationInfo.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LocationInfo.cs 1 Oct 2004 21:24:05 -0000 1.5
+++ LocationInfo.cs 6 Dec 2004 02:20:06 -0000 1.6
@@ -62,11 +62,16 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="LocationInfo"
/>
- /// class based on the current thread.
+ /// Constructor
/// </summary>
/// <param name="callerStackBoundaryDeclaringType">The
declaring type of the method that is
/// the stack boundary into the logging system for this
call.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LocationInfo"
/>
+ /// class based on the current thread.
+ /// </para>
+ /// </remarks>
public LocationInfo(Type callerStackBoundaryDeclaringType)
{
// Initialize all fields
@@ -142,13 +147,18 @@
}
/// <summary>
- /// Initializes a new instance of the <see cref="LocationInfo"
/>
- /// class with the specified data.
+ /// Constructor
/// </summary>
/// <param name="className">The fully qualified class
name.</param>
/// <param name="methodName">The method name.</param>
/// <param name="fileName">The file name.</param>
/// <param name="lineNumber">The line number of the method
within the file.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LocationInfo"
/>
+ /// class with the specified data.
+ /// </para>
+ /// </remarks>
public LocationInfo(string className, string methodName, string
fileName, string lineNumber)
{
m_className = className;
@@ -171,6 +181,12 @@
/// The fully qualified class name of the caller making the
logging
/// request.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the fully qualified class name of the caller making
the logging
+ /// request.
+ /// </para>
+ /// </remarks>
public string ClassName
{
get { return m_className; }
@@ -179,7 +195,14 @@
/// <summary>
/// Gets the file name of the caller.
/// </summary>
- /// <value>The file name of the caller.</value>
+ /// <value>
+ /// The file name of the caller.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the file name of the caller.
+ /// </para>
+ /// </remarks>
public string FileName
{
get { return m_fileName; }
@@ -191,6 +214,11 @@
/// <value>
/// The line number of the caller.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the line number of the caller.
+ /// </para>
+ /// </remarks>
public string LineNumber
{
get { return m_lineNumber; }
@@ -202,19 +230,29 @@
/// <value>
/// The method name of the caller.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the method name of the caller.
+ /// </para>
+ /// </remarks>
public string MethodName
{
get { return m_methodName; }
}
/// <summary>
- /// Gets all available caller information, in the format
- ///
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
+ /// Gets all available caller information
/// </summary>
/// <value>
/// All available caller information, in the format
///
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets all available caller information, in the format
+ ///
<c>fully.qualified.classname.of.caller.methodName(Filename:line)</c>
+ /// </para>
+ /// </remarks>
public string FullInfo
{
get { return m_fullInfo; }
@@ -224,11 +262,11 @@
#region Private Instance Fields
- private string m_className;
- private string m_fileName;
- private string m_lineNumber;
- private string m_methodName;
- private string m_fullInfo;
+ private readonly string m_className;
+ private readonly string m_fileName;
+ private readonly string m_lineNumber;
+ private readonly string m_methodName;
+ private readonly string m_fullInfo;
#endregion Private Instance Fields
1.3 +29 -8 logging-log4net/src/Core/LogException.cs
Index: LogException.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LogException.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LogException.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ LogException.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -28,7 +28,8 @@
/// <para>
/// This type extends <see cref="ApplicationException"/>. It
/// does not add any new functionality but does differentiate the
- /// type of exception being thrown.</para>
+ /// type of exception being thrown.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
@@ -40,27 +41,42 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="LogException"
/> class.
+ /// Constructor
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LogException"
/> class.
+ /// </para>
+ /// </remarks>
public LogException()
{
}
/// <summary>
- /// Initializes a new instance of the <see cref="LogException"
/> class with
- /// the specified message.
+ /// Constructor
/// </summary>
/// <param name="message">A message to include with the
exception.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LogException"
/> class with
+ /// the specified message.
+ /// </para>
+ /// </remarks>
public LogException(String message) : base(message)
{
}
/// <summary>
- /// Initializes a new instance of the <see cref="LogException"
/> class
- /// with the specified message and inner exception.
+ /// Constructor
/// </summary>
/// <param name="message">A message to include with the
exception.</param>
/// <param name="innerException">A nested exception to
include.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LogException"
/> class
+ /// with the specified message and inner exception.
+ /// </para>
+ /// </remarks>
public LogException(String message, Exception innerException) :
base(message, innerException)
{
}
@@ -71,11 +87,16 @@
#if !NETCF
/// <summary>
- /// Initializes a new instance of the <see cref="LogException"
/> class
- /// with serialized data.
+ /// Serialization constructor
/// </summary>
/// <param name="info">The <see cref="SerializationInfo" />
that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="StreamingContext" />
that contains contextual information about the source or destination.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LogException"
/> class
+ /// with serialized data.
+ /// </para>
+ /// </remarks>
protected LogException(SerializationInfo info, StreamingContext
context) : base(info, context)
{
}
1.7 +60 -17 logging-log4net/src/Core/LogImpl.cs
Index: LogImpl.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LogImpl.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- LogImpl.cs 31 Oct 2004 22:35:50 -0000 1.6
+++ LogImpl.cs 6 Dec 2004 02:20:06 -0000 1.7
@@ -101,6 +101,11 @@
/// Construct a new wrapper for the specified logger.
/// </summary>
/// <param name="logger">The logger to wrap.</param>
+ /// <remarks>
+ /// <para>
+ /// Construct a new wrapper for the specified logger.
+ /// </para>
+ /// </remarks>
public LogImpl(ILogger logger) : base(logger)
{
// Listen for changes to the repository
@@ -116,6 +121,11 @@
/// Virtual method called when the configuration of the
repository changes
/// </summary>
/// <param name="repository">the repository holding the
levels</param>
+ /// <remarks>
+ /// <para>
+ /// Virtual method called when the configuration of the
repository changes
+ /// </para>
+ /// </remarks>
protected virtual void ReloadLevels(ILoggerRepository
repository)
{
LevelMap levelMap = repository.LevelMap;
@@ -158,14 +168,19 @@
}
/// <summary>
- /// Logs a message object with the <c>DEBUG</c> level including
- /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/> passed
- /// as a parameter.
+ /// Logs a message object with the <c>DEBUG</c> level
/// </summary>
/// <param name="message">The message object to log.</param>
/// <param name="t">The exception to log, including its stack
trace.</param>
/// <remarks>
+ /// <para>
+ /// Logs a message object with the <c>DEBUG</c> level including
+ /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/> passed
+ /// as a parameter.
+ /// </para>
+ /// <para>
/// See the <see cref="Debug(object)"/> form for more detailed
information.
+ /// </para>
/// </remarks>
/// <seealso cref="Debug(object)"/>
virtual public void Debug(object message, Exception t)
@@ -247,14 +262,19 @@
}
/// <summary>
- /// Logs a message object with the <c>INFO</c> level including
- /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
- /// passed as a parameter.
+ /// Logs a message object with the <c>INFO</c> level.
/// </summary>
/// <param name="message">The message object to log.</param>
/// <param name="t">The exception to log, including its stack
trace.</param>
/// <remarks>
+ /// <para>
+ /// Logs a message object with the <c>INFO</c> level including
+ /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
+ /// passed as a parameter.
+ /// </para>
+ /// <para>
/// See the <see cref="Info(object)"/> form for more detailed
information.
+ /// </para>
/// </remarks>
/// <seealso cref="Info(object)"/>
virtual public void Info(object message, Exception t)
@@ -336,14 +356,19 @@
}
/// <summary>
- /// Logs a message object with the <c>WARN</c> level including
- /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
- /// passed as a parameter.
+ /// Logs a message object with the <c>WARN</c> level
/// </summary>
/// <param name="message">The message object to log.</param>
/// <param name="t">The exception to log, including its stack
trace.</param>
/// <remarks>
+ /// <para>
+ /// Logs a message object with the <c>WARN</c> level including
+ /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
+ /// passed as a parameter.
+ /// </para>
+ /// <para>
/// See the <see cref="Warn(object)"/> form for more detailed
information.
+ /// </para>
/// </remarks>
/// <seealso cref="Warn(object)"/>
virtual public void Warn(object message, Exception t)
@@ -425,14 +450,19 @@
}
/// <summary>
- /// Logs a message object with the <c>ERROR</c> level including
- /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
- /// passed as a parameter.
+ /// Logs a message object with the <c>ERROR</c> level
/// </summary>
/// <param name="message">The message object to log.</param>
/// <param name="t">The exception to log, including its stack
trace.</param>
/// <remarks>
+ /// <para>
+ /// Logs a message object with the <c>ERROR</c> level including
+ /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
+ /// passed as a parameter.
+ /// </para>
+ /// <para>
/// See the <see cref="Error(object)"/> form for more detailed
information.
+ /// </para>
/// </remarks>
/// <seealso cref="Error(object)"/>
virtual public void Error(object message, Exception t)
@@ -514,14 +544,19 @@
}
/// <summary>
- /// Logs a message object with the <c>FATAL</c> level including
- /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
- /// passed as a parameter.
+ /// Logs a message object with the <c>FATAL</c> level
/// </summary>
/// <param name="message">The message object to log.</param>
/// <param name="t">The exception to log, including its stack
trace.</param>
/// <remarks>
+ /// <para>
+ /// Logs a message object with the <c>FATAL</c> level including
+ /// the stack trace of the <see cref="Exception"/> <paramref
name="t"/>
+ /// passed as a parameter.
+ /// </para>
+ /// <para>
/// See the <see cref="Fatal(object)"/> form for more detailed
information.
+ /// </para>
/// </remarks>
/// <seealso cref="Fatal(object)"/>
virtual public void Fatal(object message, Exception t)
@@ -590,7 +625,7 @@
/// <para>
/// For some <c>log</c> Logger object, when you write:
/// </para>
- /// <code>
+ /// <code lang="C#">
/// log.Debug("This is entry number: " + i );
/// </code>
/// <para>
@@ -600,7 +635,7 @@
/// <para>
/// If you are worried about speed, then you should write:
/// </para>
- /// <code>
+ /// <code lang="C#">
/// if (log.IsDebugEnabled())
/// {
/// log.Debug("This is entry number: " + i );
@@ -630,8 +665,10 @@
/// <c>false</c> otherwise.
/// </value>
/// <remarks>
+ /// <para>
/// See <see cref="IsDebugEnabled"/> for more information and
examples
/// of using this method.
+ /// </para>
/// </remarks>
/// <seealso cref="LogImpl.IsDebugEnabled"/>
virtual public bool IsInfoEnabled
@@ -647,8 +684,10 @@
/// <c>false</c> otherwise.
/// </value>
/// <remarks>
+ /// <para>
/// See <see cref="IsDebugEnabled"/> for more information and
examples
/// of using this method.
+ /// </para>
/// </remarks>
/// <seealso cref="ILog.IsDebugEnabled"/>
virtual public bool IsWarnEnabled
@@ -664,7 +703,9 @@
/// <c>false</c> otherwise.
/// </value>
/// <remarks>
+ /// <para>
/// See <see cref="IsDebugEnabled"/> for more information and
examples of using this method.
+ /// </para>
/// </remarks>
/// <seealso cref="ILog.IsDebugEnabled"/>
virtual public bool IsErrorEnabled
@@ -680,7 +721,9 @@
/// <c>false</c> otherwise.
/// </value>
/// <remarks>
+ /// <para>
/// See <see cref="IsDebugEnabled"/> for more information and
examples of using this method.
+ /// </para>
/// </remarks>
/// <seealso cref="ILog.IsDebugEnabled"/>
virtual public bool IsFatalEnabled
1.6 +101 -63 logging-log4net/src/Core/LoggerManager.cs
Index: LoggerManager.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LoggerManager.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LoggerManager.cs 21 May 2004 22:15:32 -0000 1.5
+++ LoggerManager.cs 6 Dec 2004 02:20:06 -0000 1.6
@@ -47,7 +47,9 @@
/// Private constructor to prevent instances. Only static
methods should be used.
/// </summary>
/// <remarks>
+ /// <para>
/// Private constructor to prevent instances. Only static
methods should be used.
+ /// </para>
/// </remarks>
private LoggerManager()
{
@@ -61,9 +63,11 @@
/// Hook the shutdown event
/// </summary>
/// <remarks>
+ /// <para>
/// On the full .NET runtime, the static constructor hooks up
the
/// <c>AppDomain.ProcessExit</c> and
<c>AppDomain.DomainUnload</c>> events.
/// These are used to shutdown the log4net system as the
application exits.
+ /// </para>
/// </remarks>
static LoggerManager()
{
@@ -97,11 +101,13 @@
/// Register for ProcessExit and DomainUnload events on the
AppDomain
/// </summary>
/// <remarks>
+ /// <para>
/// This needs to be in a separate method because the events
make
/// a LinkDemand for the ControlAppDomain SecurityPermission.
Because
/// this is a LinkDemand it is demanded at JIT time. Therefore
we cannot
/// catch the exception in the method itself, we have to catch
it in the
/// caller.
+ /// </para>
/// </remarks>
private static void RegisterAppDomainEvents()
{
@@ -124,8 +130,10 @@
/// <param name="repository">the repository to lookup in</param>
/// <returns>Return the default <see cref="ILoggerRepository"/>
instance</returns>
/// <remarks>
- /// <para>Gets the <see cref="ILoggerRepository"/> for the
repository specified
- /// by the <paramref name="repository"/> argument.</para>
+ /// <para>
+ /// Gets the <see cref="ILoggerRepository"/> for the repository
specified
+ /// by the <paramref name="repository"/> argument.
+ /// </para>
/// </remarks>
[Obsolete("Use GetRepository instead of GetLoggerRepository")]
public static ILoggerRepository GetLoggerRepository(string
repository)
@@ -150,8 +158,10 @@
/// <param name="repository">the repository to lookup in</param>
/// <returns>Return the default <see cref="ILoggerRepository"/>
instance</returns>
/// <remarks>
- /// <para>Gets the <see cref="ILoggerRepository"/> for the
repository specified
- /// by the <paramref name="repository"/> argument.</para>
+ /// <para>
+ /// Gets the <see cref="ILoggerRepository"/> for the repository
specified
+ /// by the <paramref name="repository"/> argument.
+ /// </para>
/// </remarks>
public static ILoggerRepository GetRepository(string repository)
{
@@ -167,6 +177,11 @@
/// </summary>
/// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
/// <returns>The default <see cref="ILoggerRepository"/>
instance.</returns>
+ /// <remarks>
+ /// <para>
+ /// Returns the default <see cref="ILoggerRepository"/>
instance.
+ /// </para>
+ /// </remarks>
public static ILoggerRepository GetRepository(Assembly
repositoryAssembly)
{
if (repositoryAssembly == null)
@@ -179,17 +194,19 @@
/// <summary>
/// Returns the named logger if it exists.
/// </summary>
- /// <remarks>
- /// <para>If the named logger exists (in the specified
repository) then it
- /// returns a reference to the logger, otherwise it returns
- /// <c>null</c>.</para>
- /// </remarks>
/// <param name="repository">The repository to lookup
in.</param>
/// <param name="name">The fully qualified logger name to look
for.</param>
/// <returns>
/// The logger found, or <c>null</c> if the named logger does
not exist in the
/// specified repository.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// If the named logger exists (in the specified repository)
then it
+ /// returns a reference to the logger, otherwise it returns
+ /// <c>null</c>.
+ /// </para>
+ /// </remarks>
public static ILogger Exists(string repository, string name)
{
if (repository == null)
@@ -206,17 +223,19 @@
/// <summary>
/// Returns the named logger if it exists.
/// </summary>
- /// <remarks>
- /// <para>If the named logger exists (in the specified
assembly's repository) then it
- /// returns a reference to the logger, otherwise it returns
- /// <c>null</c>.</para>
- /// </remarks>
/// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
/// <param name="name">The fully qualified logger name to look
for.</param>
/// <returns>
/// The logger found, or <c>null</c> if the named logger does
not exist in the
/// specified assembly's repository.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// If the named logger exists (in the specified assembly's
repository) then it
+ /// returns a reference to the logger, otherwise it returns
+ /// <c>null</c>.
+ /// </para>
+ /// </remarks>
public static ILogger Exists(Assembly repositoryAssembly,
string name)
{
if (repositoryAssembly == null)
@@ -234,10 +253,12 @@
/// Returns all the currently defined loggers in the specified
repository.
/// </summary>
/// <param name="repository">The repository to lookup
in.</param>
+ /// <returns>All the defined loggers.</returns>
/// <remarks>
+ /// <para>
/// The root logger is <b>not</b> included in the returned
array.
+ /// </para>
/// </remarks>
- /// <returns>All the defined loggers.</returns>
public static ILogger[] GetCurrentLoggers(string repository)
{
if (repository == null)
@@ -251,10 +272,12 @@
/// Returns all the currently defined loggers in the specified
assembly's repository.
/// </summary>
/// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
+ /// <returns>All the defined loggers.</returns>
/// <remarks>
+ /// <para>
/// The root logger is <b>not</b> included in the returned
array.
+ /// </para>
/// </remarks>
- /// <returns>All the defined loggers.</returns>
public static ILogger[] GetCurrentLoggers(Assembly
repositoryAssembly)
{
if (repositoryAssembly == null)
@@ -267,6 +290,9 @@
/// <summary>
/// Retrieves or creates a named logger.
/// </summary>
+ /// <param name="repository">The repository to lookup
in.</param>
+ /// <param name="name">The name of the logger to
retrieve.</param>
+ /// <returns>The logger with the name specified.</returns>
/// <remarks>
/// <para>
/// Retrieves a logger named as the <paramref name="name"/>
@@ -280,9 +306,6 @@
/// log4net.
/// </para>
/// </remarks>
- /// <param name="repository">The repository to lookup
in.</param>
- /// <param name="name">The name of the logger to
retrieve.</param>
- /// <returns>The logger with the name specified.</returns>
public static ILogger GetLogger(string repository, string name)
{
if (repository == null)
@@ -299,6 +322,9 @@
/// <summary>
/// Retrieves or creates a named logger.
/// </summary>
+ /// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
+ /// <param name="name">The name of the logger to
retrieve.</param>
+ /// <returns>The logger with the name specified.</returns>
/// <remarks>
/// <para>
/// Retrieves a logger named as the <paramref name="name"/>
@@ -312,9 +338,6 @@
/// log4net.
/// </para>
/// </remarks>
- /// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
- /// <param name="name">The name of the logger to
retrieve.</param>
- /// <returns>The logger with the name specified.</returns>
public static ILogger GetLogger(Assembly repositoryAssembly,
string name)
{
if (repositoryAssembly == null)
@@ -331,12 +354,14 @@
/// <summary>
/// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
/// </summary>
- /// <remarks>
- /// Gets the logger for the fully qualified name of the type
specified.
- /// </remarks>
/// <param name="repository">The repository to lookup
in.</param>
/// <param name="type">The <paramref name="type"/> of which the
fullname will be used as the name of the logger to retrieve.</param>
/// <returns>The logger with the name specified.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the logger for the fully qualified name of the type
specified.
+ /// </para>
+ /// </remarks>
public static ILogger GetLogger(string repository, Type type)
{
if (repository == null)
@@ -353,12 +378,14 @@
/// <summary>
/// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
/// </summary>
- /// <remarks>
- /// Gets the logger for the fully qualified name of the type
specified.
- /// </remarks>
/// <param name="repositoryAssembly">the assembly to use to
lookup the repository</param>
/// <param name="type">The <paramref name="type"/> of which the
fullname will be used as the name of the logger to retrieve.</param>
/// <returns>The logger with the name specified.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets the logger for the fully qualified name of the type
specified.
+ /// </para>
+ /// </remarks>
public static ILogger GetLogger(Assembly repositoryAssembly,
Type type)
{
if (repositoryAssembly == null)
@@ -403,6 +430,7 @@
/// <summary>
/// Shuts down the repository for the repository specified.
/// </summary>
+ /// <param name="repository">The repository to shutdown.</param>
/// <remarks>
/// <para>
/// Calling this method will <b>safely</b> close and remove all
@@ -420,7 +448,6 @@
/// and again to a nested appender.
/// </para>
/// </remarks>
- /// <param name="repository">The repository to shutdown.</param>
public static void ShutdownRepository(string repository)
{
if (repository == null)
@@ -433,6 +460,7 @@
/// <summary>
/// Shuts down the repository for the repository specified.
/// </summary>
+ /// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
/// <remarks>
/// <para>
/// Calling this method will <b>safely</b> close and remove all
@@ -451,7 +479,6 @@
/// and again to a nested appender.
/// </para>
/// </remarks>
- /// <param name="repositoryAssembly">The assembly to use to
lookup the repository.</param>
public static void ShutdownRepository(Assembly
repositoryAssembly)
{
if (repositoryAssembly == null)
@@ -464,6 +491,7 @@
/// <summary>
/// Resets all values contained in this repository instance to
their defaults.
/// </summary>
+ /// <param name="repository">The repository to reset.</param>
/// <remarks>
/// <para>
/// Resets all values contained in the repository instance to
their
@@ -474,7 +502,6 @@
/// message disabling is set its default "off" value.
/// </para>
/// </remarks>
- /// <param name="repository">The repository to reset.</param>
public static void ResetConfiguration(string repository)
{
if (repository == null)
@@ -487,6 +514,7 @@
/// <summary>
/// Resets all values contained in this repository instance to
their defaults.
/// </summary>
+ /// <param name="repositoryAssembly">The assembly to use to
lookup the repository to reset.</param>
/// <remarks>
/// <para>
/// Resets all values contained in the repository instance to
their
@@ -497,7 +525,6 @@
/// message disabling is set its default "off" value.
/// </para>
/// </remarks>
- /// <param name="repositoryAssembly">The assembly to use to
lookup the repository to reset.</param>
public static void ResetConfiguration(Assembly
repositoryAssembly)
{
if (repositoryAssembly == null)
@@ -510,6 +537,8 @@
/// <summary>
/// Creates a repository with the specified name.
/// </summary>
+ /// <param name="repository">The name of the repository, this
must be unique amongst repositories.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// <b>CreateDomain is obsolete. Use CreateRepository instead
of CreateDomain.</b>
@@ -523,8 +552,6 @@
/// An <see cref="Exception"/> will be thrown if the repository
already exists.
/// </para>
/// </remarks>
- /// <param name="repository">The name of the repository, this
must be unique amongst repositories.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <exception cref="LogException">The specified repository
already exists.</exception>
[Obsolete("Use CreateRepository instead of CreateDomain")]
public static ILoggerRepository CreateDomain(string repository)
@@ -535,6 +562,8 @@
/// <summary>
/// Creates a repository with the specified name.
/// </summary>
+ /// <param name="repository">The name of the repository, this
must be unique amongst repositories.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// Creates the default type of <see cref="ILoggerRepository"/>
which is a
@@ -545,8 +574,6 @@
/// An <see cref="Exception"/> will be thrown if the repository
already exists.
/// </para>
/// </remarks>
- /// <param name="repository">The name of the repository, this
must be unique amongst repositories.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <exception cref="LogException">The specified repository
already exists.</exception>
public static ILoggerRepository CreateRepository(string
repository)
{
@@ -560,6 +587,11 @@
/// <summary>
/// Creates a repository with the specified name and repository
type.
/// </summary>
+ /// <param name="repository">The name of the repository, this
must be unique to the repository.</param>
+ /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
+ /// and has a no arg constructor. An instance of this type will
be created to act
+ /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// <b>CreateDomain is obsolete. Use CreateRepository instead
of CreateDomain.</b>
@@ -569,11 +601,6 @@
/// An Exception will be thrown if the repository already
exists.
/// </para>
/// </remarks>
- /// <param name="repository">The name of the repository, this
must be unique to the repository.</param>
- /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
- /// and has a no arg constructor. An instance of this type will
be created to act
- /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <exception cref="LogException">The specified repository
already exists.</exception>
[Obsolete("Use CreateRepository instead of CreateDomain")]
public static ILoggerRepository CreateDomain(string repository,
Type repositoryType)
@@ -584,17 +611,17 @@
/// <summary>
/// Creates a repository with the specified name and repository
type.
/// </summary>
+ /// <param name="repository">The name of the repository, this
must be unique to the repository.</param>
+ /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
+ /// and has a no arg constructor. An instance of this type will
be created to act
+ /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// The <paramref name="repository"/> name must be unique.
Repositories cannot be redefined.
/// An Exception will be thrown if the repository already
exists.
/// </para>
/// </remarks>
- /// <param name="repository">The name of the repository, this
must be unique to the repository.</param>
- /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
- /// and has a no arg constructor. An instance of this type will
be created to act
- /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <exception cref="LogException">The specified repository
already exists.</exception>
public static ILoggerRepository CreateRepository(string
repository, Type repositoryType)
{
@@ -612,6 +639,11 @@
/// <summary>
/// Creates a repository for the specified assembly and
repository type.
/// </summary>
+ /// <param name="repositoryAssembly">The assembly to use to get
the name of the repository.</param>
+ /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
+ /// and has a no arg constructor. An instance of this type will
be created to act
+ /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// <b>CreateDomain is obsolete. Use CreateRepository instead
of CreateDomain.</b>
@@ -622,11 +654,6 @@
/// same assembly specified will return the same repository
instance.
/// </para>
/// </remarks>
- /// <param name="repositoryAssembly">The assembly to use to get
the name of the repository.</param>
- /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
- /// and has a no arg constructor. An instance of this type will
be created to act
- /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
[Obsolete("Use CreateRepository instead of CreateDomain")]
public static ILoggerRepository CreateDomain(Assembly
repositoryAssembly, Type repositoryType)
{
@@ -636,6 +663,11 @@
/// <summary>
/// Creates a repository for the specified assembly and
repository type.
/// </summary>
+ /// <param name="repositoryAssembly">The assembly to use to get
the name of the repository.</param>
+ /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
+ /// and has a no arg constructor. An instance of this type will
be created to act
+ /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
+ /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
/// <remarks>
/// <para>
/// The <see cref="ILoggerRepository"/> created will be
associated with the repository
@@ -643,11 +675,6 @@
/// same assembly specified will return the same repository
instance.
/// </para>
/// </remarks>
- /// <param name="repositoryAssembly">The assembly to use to get
the name of the repository.</param>
- /// <param name="repositoryType">A <see cref="Type"/> that
implements <see cref="ILoggerRepository"/>
- /// and has a no arg constructor. An instance of this type will
be created to act
- /// as the <see cref="ILoggerRepository"/> for the repository
specified.</param>
- /// <returns>The <see cref="ILoggerRepository"/> created for
the repository.</returns>
public static ILoggerRepository CreateRepository(Assembly
repositoryAssembly, Type repositoryType)
{
if (repositoryAssembly == null)
@@ -662,9 +689,14 @@
}
/// <summary>
- /// Gets the list of currently defined repositories.
+ /// Gets an array of all currently defined repositories.
/// </summary>
/// <returns>An array of all the known <see
cref="ILoggerRepository"/> objects.</returns>
+ /// <remarks>
+ /// <para>
+ /// Gets an array of all currently defined repositories.
+ /// </para>
+ /// </remarks>
public static ILoggerRepository[] GetAllRepositories()
{
return RepositorySelector.GetAllRepositories();
@@ -735,9 +767,12 @@
/// <param name="sender">the <see cref="AppDomain"/> that is
exiting</param>
/// <param name="e">null</param>
/// <remarks>
- /// <para>Called when the <see cref="AppDomain.DomainUnload"/>
event fires.</para>
- ///
- /// <para>When the event is triggered the log4net system is
<see cref="Shutdown()"/>.</para>
+ /// <para>
+ /// Called when the <see cref="AppDomain.DomainUnload"/> event
fires.
+ /// </para>
+ /// <para>
+ /// When the event is triggered the log4net system is <see
cref="Shutdown()"/>.
+ /// </para>
/// </remarks>
private static void OnDomainUnload(object sender, EventArgs e)
{
@@ -750,9 +785,12 @@
/// <param name="sender">the <see cref="AppDomain"/> that is
exiting</param>
/// <param name="e">null</param>
/// <remarks>
- /// <para>Called when the <see cref="AppDomain.ProcessExit"/>
event fires.</para>
- ///
- /// <para>When the event is triggered the log4net system is
<see cref="Shutdown()"/>.</para>
+ /// <para>
+ /// Called when the <see cref="AppDomain.ProcessExit"/> event
fires.
+ /// </para>
+ /// <para>
+ /// When the event is triggered the log4net system is <see
cref="Shutdown()"/>.
+ /// </para>
/// </remarks>
private static void OnProcessExit(object sender, EventArgs e)
{
1.3 +5 -0 logging-log4net/src/Core/LoggerWrapperImpl.cs
Index: LoggerWrapperImpl.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LoggerWrapperImpl.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LoggerWrapperImpl.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ LoggerWrapperImpl.cs 6 Dec 2004 02:20:06 -0000 1.3
@@ -36,6 +36,11 @@
/// Constructs a new wrapper for the specified logger.
/// </summary>
/// <param name="logger">The logger to wrap.</param>
+ /// <remarks>
+ /// <para>
+ /// Constructs a new wrapper for the specified logger.
+ /// </para>
+ /// </remarks>
protected LoggerWrapperImpl(ILogger logger)
{
m_logger = logger;
1.16 +149 -76 logging-log4net/src/Core/LoggingEvent.cs
Index: LoggingEvent.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/LoggingEvent.cs,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- LoggingEvent.cs 29 Nov 2004 21:20:27 -0000 1.15
+++ LoggingEvent.cs 6 Dec 2004 02:20:06 -0000 1.16
@@ -32,6 +32,11 @@
/// <summary>
/// Portable data structure used by <see cref="LoggingEvent"/>
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Portable data structure used by <see cref="LoggingEvent"/>
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public struct LoggingEventData
{
@@ -40,28 +45,43 @@
/// <summary>
/// The logger name.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// The logger name.
+ /// </para>
+ /// </remarks>
public string LoggerName;
/// <summary>
+ /// Level of logging event.
+ /// </summary>
+ /// <remarks>
+ /// <para>
/// Level of logging event. Level cannot be Serializable
/// because it is a flyweight. Due to its special
serialization it
/// cannot be declared final either.
- /// </summary>
+ /// </para>
+ /// </remarks>
public Level Level;
/// <summary>
- /// The nested diagnostic context (NDC) of logging event.
+ /// The application supplied message.
/// </summary>
- public string Ndc;
-
- /// <summary>
+ /// <remarks>
+ /// <para>
/// The application supplied message of logging event.
- /// </summary>
+ /// </para>
+ /// </remarks>
public string Message;
/// <summary>
- /// The name of thread in which this logging event was generated
+ /// The name of thread
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// The name of thread in which this logging event was generated
+ /// </para>
+ /// </remarks>
public string ThreadName;
/// <summary>
@@ -77,36 +97,63 @@
/// <summary>
/// Location information for the caller.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Location information for the caller.
+ /// </para>
+ /// </remarks>
public LocationInfo LocationInfo;
/// <summary>
+ /// String representation of the user
+ /// </summary>
+ /// <remarks>
+ /// <para>
/// String representation of the user's windows name,
/// like DOMAIN\username
- /// </summary>
+ /// </para>
+ /// </remarks>
public string UserName;
/// <summary>
- /// String representation of the current thread's principal
identity.
+ /// String representation of the identity.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// String representation of the current thread's principal
identity.
+ /// </para>
+ /// </remarks>
public string Identity;
/// <summary>
/// The string representation of the exception
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// The string representation of the exception
+ /// </para>
+ /// </remarks>
public string ExceptionString;
/// <summary>
/// String representation of the AppDomain.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// String representation of the AppDomain.
+ /// </para>
+ /// </remarks>
public string Domain;
/// <summary>
/// Additional event specific properties
/// </summary>
/// <remarks>
+ /// <para>
/// A logger or an appender may attach additional
/// properties to specific events. These properties
/// have a string key and an object value.
+ /// </para>
/// </remarks>
public PropertiesDictionary Properties;
@@ -116,6 +163,11 @@
/// <summary>
/// Flags passed to the <see cref="LoggingEvent.Fix"/> property
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Flags passed to the <see cref="LoggingEvent.Fix"/> property
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
[Flags] public enum FixFlags
{
@@ -197,7 +249,6 @@
/// This set of partial fields gives good performance. The
following fields are fixed:
/// </para>
/// <list type="bullet">
- /// <item><description><see cref="Ndc"/></description></item>
/// <item><description><see
cref="Message"/></description></item>
/// <item><description><see
cref="ThreadName"/></description></item>
/// <item><description><see
cref="Exception"/></description></item>
@@ -205,27 +256,31 @@
/// <item><description><see
cref="Properties"/></description></item>
/// </list>
/// </remarks>
- Partial = Ndc | Message | ThreadName | Exception | Domain |
Properties,
+ Partial = Message | ThreadName | Exception | Domain |
Properties,
}
/// <summary>
/// The internal representation of logging events.
/// </summary>
/// <remarks>
- /// <para>When an affirmative decision is made to log then a
+ /// <para>
+ /// When an affirmative decision is made to log then a
/// <see cref="LoggingEvent"/> instance is created. This instance
- /// is passed around to the different log4net components.</para>
- ///
- /// <para>This class is of concern to those wishing to extend
log4net.</para>
- ///
- /// <para>Some of the values in instances of <see cref="LoggingEvent"/>
+ /// is passed around to the different log4net components.
+ /// </para>
+ /// <para>
+ /// This class is of concern to those wishing to extend log4net.
+ /// </para>
+ /// <para>
+ /// Some of the values in instances of <see cref="LoggingEvent"/>
/// are considered volatile, that is the values are correct at the
/// time the event is delivered to appenders, but will not be consistent
/// at any time afterwards. If an event is to be stored and then
processed
/// at a later time these volatile values must be fixed by calling
/// <see cref="FixVolatileData()"/>. There is a performance penalty
/// for incurred by calling <see cref="FixVolatileData()"/> but it
- /// is essential to maintaining data consistency.</para>
+ /// is essential to maintaining data consistency.
+ /// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
/// <author>Gert Driesen</author>
@@ -329,11 +384,16 @@
#if !NETCF
/// <summary>
- /// Initializes a new instance of the <see cref="LoggingEvent"
/> class
- /// with serialized data.
+ /// Serialization constructor
/// </summary>
/// <param name="info">The <see cref="SerializationInfo" />
that holds the serialized object data.</param>
/// <param name="context">The <see cref="StreamingContext" />
that contains contextual information about the source or destination.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="LoggingEvent"
/> class
+ /// with serialized data.
+ /// </para>
+ /// </remarks>
protected LoggingEvent(SerializationInfo info, StreamingContext
context)
{
m_data.LoggerName = info.GetString("LoggerName");
@@ -345,7 +405,6 @@
// be necessary to re-lookup the level based only on
the name.
m_data.Level = (Level)info.GetValue("Level",
typeof(Level));
- m_data.Ndc = info.GetString("Ndc");
m_data.Message = info.GetString("Message");
m_data.ThreadName = info.GetString("ThreadName");
m_data.TimeStamp = info.GetDateTime("TimeStamp");
@@ -395,6 +454,11 @@
/// <value>
/// The <see cref="Level" /> of the logging event.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the <see cref="Level" /> of the logging event.
+ /// </para>
+ /// </remarks>
public Level Level
{
get { return m_data.Level; }
@@ -422,6 +486,11 @@
/// <value>
/// The name of the logger that logged the event.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the name of the logger that logged the event.
+ /// </para>
+ /// </remarks>
public string LoggerName
{
get { return m_data.LoggerName; }
@@ -455,28 +524,6 @@
}
}
-// /// <summary>
-// /// Gets the text of the <see cref="ThreadContext.Stacks"/>.
-// /// </summary>
-// /// <value>
-// /// The text of the <see cref="ThreadContext.Stacks"/>.
-// /// </value>
-// public string NestedContext
-// {
-// get
-// {
-// if (m_data.Ndc == null)
-// {
-// m_data.Ndc =
ThreadContext.Stacks["NDC"].GetFullMessage();
-// if (m_data.Ndc == null)
-// {
-// m_data.Ndc = "";
-// }
-// }
-// return m_data.Ndc;
-// }
-// }
-
/// <summary>
/// Gets the message object used to initialize this event.
/// </summary>
@@ -499,10 +546,7 @@
/// </remarks>
public object MessageObject
{
- get
- {
- return m_message;
- }
+ get { return m_message; }
}
/// <summary>
@@ -527,21 +571,20 @@
/// </remarks>
public Exception ExceptionObject
{
- get
- {
- return m_thrownException;
- }
+ get { return m_thrownException; }
}
/// <summary>
/// The <see cref="ILoggerRepository"/> that this event was
created in.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// The <see cref="ILoggerRepository"/> that this event was
created in.
+ /// </para>
+ /// </remarks>
public ILoggerRepository Repository
{
- get
- {
- return m_repository;
- }
+ get { return m_repository; }
}
/// <summary>
@@ -563,7 +606,9 @@
/// The message rendered through the <see
cref="ILoggerRepository.RendererMap" />.
/// </value>
/// <remarks>
+ /// <para>
/// The collected information is cached for future use.
+ /// </para>
/// </remarks>
public string RenderedMessage
{
@@ -600,11 +645,13 @@
/// </summary>
/// <param name="writer">the writer to write the message
to</param>
/// <remarks>
+ /// <para>
/// Unlike the <see cref="RenderedMessage"/> property this
method
/// does store the message data in the internal cache.
Therefore
/// if called only once this method should be faster than the
/// <see cref="RenderedMessage"/> property, however if the
message is
/// to be accessed multiple times then the property will be
more efficient.
+ /// </para>
/// </remarks>
public void WriteRenderedMessage(TextWriter writer)
{
@@ -641,7 +688,9 @@
/// the name is not available.
/// </value>
/// <remarks>
+ /// <para>
/// The collected information is cached for future use.
+ /// </para>
/// </remarks>
public string ThreadName
{
@@ -706,10 +755,20 @@
/// <para>
/// Timing for these operations:
/// </para>
- /// <code>
- /// 00:00:00.2031250 sec, 10000 loops,
WindowsIdentity.GetCurrent()
- /// 00:00:08.0468750 sec, 10000 loops,
WindowsIdentity.GetCurrent().Name
- /// </code>
+ /// <list type="table">
+ /// <listheader>
+ /// <term>Method</term>
+ /// <description>Results</description>
+ /// </listheader>
+ /// <item>
+ /// <term><c>WindowsIdentity.GetCurrent()</c></term>
+ /// <description>10000 loops, 00:00:00.2031250
seconds</description>
+ /// </item>
+ /// <item>
+ ///
<term><c>WindowsIdentity.GetCurrent().Name</c></term>
+ /// <description>10000 loops, 00:00:08.0468750
seconds</description>
+ /// </item>
+ /// </list>
/// <para>
/// This means we could speed things up almost 40 times by
caching the
/// value of the <c>WindowsIdentity.GetCurrent().Name</c>
property, since
@@ -804,6 +863,14 @@
/// <summary>
/// Gets the AppDomain friendly name.
/// </summary>
+ /// <value>
+ /// The AppDomain friendly name.
+ /// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the AppDomain friendly name.
+ /// </para>
+ /// </remarks>
public string Domain
{
get
@@ -907,7 +974,6 @@
info.AddValue("LoggerName", m_data.LoggerName);
info.AddValue("Level", m_data.Level);
- info.AddValue("Ndc", m_data.Ndc);
info.AddValue("Message", m_data.Message);
info.AddValue("ThreadName", m_data.ThreadName);
info.AddValue("TimeStamp", m_data.TimeStamp);
@@ -928,14 +994,17 @@
/// <summary>
/// Gets the portable data for this <see cref="LoggingEvent" />.
/// </summary>
+ /// <returns>The <see cref="LoggingEventData"/> for this
event.</returns>
/// <remarks>
/// <para>
/// A new <see cref="LoggingEvent"/> can be constructed using a
- /// <see cref="LoggingEventData"/> instance.</para>
- /// <para>Does a <see cref="FixFlags.Partial"/> fix of the data
- /// in the logging event before returning the event data</para>
+ /// <see cref="LoggingEventData"/> instance.
+ /// </para>
+ /// <para>
+ /// Does a <see cref="FixFlags.Partial"/> fix of the data
+ /// in the logging event before returning the event data.
+ /// </para>
/// </remarks>
- /// <returns>The <see cref="LoggingEventData"/> for this
event.</returns>
public LoggingEventData GetLoggingEventData()
{
return GetLoggingEventData(FixFlags.Partial);
@@ -945,12 +1014,13 @@
/// Gets the portable data for this <see cref="LoggingEvent" />.
/// </summary>
/// <param name="fixFlags">The set of data to ensure is fixed
in the LoggingEventData</param>
+ /// <returns>The <see cref="LoggingEventData"/> for this
event.</returns>
/// <remarks>
/// <para>
/// A new <see cref="LoggingEvent"/> can be constructed using a
- /// <see cref="LoggingEventData"/> instance.</para>
+ /// <see cref="LoggingEventData"/> instance.
+ /// </para>
/// </remarks>
- /// <returns>The <see cref="LoggingEventData"/> for this
event.</returns>
public LoggingEventData GetLoggingEventData(FixFlags fixFlags)
{
Fix = fixFlags;
@@ -961,12 +1031,14 @@
/// Returns this event's exception's rendered using the
/// <see cref="ILoggerRepository.RendererMap" />.
/// </summary>
- /// <remarks>
- /// <b>Obsolete. Use <see cref="GetExceptionString"/>
instead.</b>
- /// </remarks>
/// <returns>
/// This event's exception's rendered using the <see
cref="ILoggerRepository.RendererMap" />.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// <b>Obsolete. Use <see cref="GetExceptionString"/>
instead.</b>
+ /// </para>
+ /// </remarks>
[Obsolete("Use GetExceptionString instead")]
public string GetExceptionStrRep()
{
@@ -980,6 +1052,12 @@
/// <returns>
/// This event's exception's rendered using the <see
cref="ILoggerRepository.RendererMap" />.
/// </returns>
+ /// <remarks>
+ /// <para>
+ /// Returns this event's exception's rendered using the
+ /// <see cref="ILoggerRepository.RendererMap" />.
+ /// </para>
+ /// </remarks>
public string GetExceptionString()
{
if (m_data.ExceptionString == null)
@@ -1083,9 +1161,11 @@
/// </summary>
/// <param name="flags">the fields to fix</param>
/// <remarks>
+ /// <para>
/// Only fields specified in the <paramref name="flags"/> will
be fixed.
/// Fields will not be fixed if they have previously been fixed.
/// It is not possible to 'unfix' a field.
+ /// </para>
/// </remarks>
protected void FixVolatileData(FixFlags flags)
{
@@ -1094,13 +1174,6 @@
if (updateFlags > 0)
{
-// if ((updateFlags & FixFlags.Ndc) != 0)
-// {
-// // Force the NDC to be cached
-// string tmp = this.NestedContext;
-//
-// m_fixFlags |= FixFlags.Ndc;
-// }
if ((updateFlags & FixFlags.Message) != 0)
{
// Force the message to be rendered
1.2 +17 -0 logging-log4net/src/Core/SecurityContext.cs
Index: SecurityContext.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/SecurityContext.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SecurityContext.cs 12 Nov 2004 22:33:30 -0000 1.1
+++ SecurityContext.cs 6 Dec 2004 02:20:06 -0000 1.2
@@ -23,6 +23,13 @@
/// <summary>
/// A SecurityContext used by log4net when interacting with protected
resources
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A SecurityContext used by log4net when interacting with protected
resources
+ /// for example with operating system services. This can be used to
impersonate
+ /// a principal that has been granted privileges on the system
resources.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public abstract class SecurityContext
{
@@ -32,6 +39,16 @@
/// <param name="state">State supplied by the caller</param>
/// <returns>An <see cref="IDisposable"/> instance that will
/// revoke the impersonation of this SecurityContext, or
<c>null</c></returns>
+ /// <remarks>
+ /// <para>
+ /// Impersonate this security context. Further calls on the
current
+ /// thread should now be made in the security context provided
+ /// by this object. When the <see cref="IDisposable"/> result
+ /// <see cref="IDisposable.Dispose"/> method is called the
security
+ /// context of the thread should be reverted to the state it
was in
+ /// before <see cref="Impersonate"/> was called.
+ /// </para>
+ /// </remarks>
public abstract IDisposable Impersonate(object state);
}
}
1.2 +53 -27 logging-log4net/src/Core/SecurityContextProvider.cs
Index: SecurityContextProvider.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/SecurityContextProvider.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SecurityContextProvider.cs 12 Nov 2004 22:33:30 -0000 1.1
+++ SecurityContextProvider.cs 6 Dec 2004 02:20:06 -0000 1.2
@@ -23,15 +23,43 @@
namespace log4net.Core
{
/// <summary>
- /// A SecurityContext used by log4net when interacting with protected
resources
+ /// The <see cref="SecurityContextProvider"/> providers default <see
cref="SecurityContext"/> instances.
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// A configured component that interacts with potentially protected
system
+ /// resources uses a <see cref="SecurityContext"/> to provide the
elevated
+ /// privileges required. If the <see cref="SecurityContext"/> object has
+ /// been not been explicitly provided to the component then the
component
+ /// will request one from this <see cref="SecurityContextProvider"/>.
+ /// </para>
+ /// <para>
+ /// By default the <see
cref="SecurityContextProvider.DefaultProvider"/> is
+ /// an instance of <see cref="SecurityContextProvider"/> which returns
only
+ /// <see cref="NullSecurityContext"/> objects. This is a reasonable
default
+ /// where the privileges required are not know by the system.
+ /// </para>
+ /// <para>
+ /// This default behavior can be overridden by subclassing the <see
cref="SecurityContextProvider"/>
+ /// and overriding the <see cref="CreateSecurityContext"/> method to
return
+ /// the desired <see cref="SecurityContext"/> objects. The default
provider
+ /// can be replaced by programmatically setting the value of the
+ /// <see cref="SecurityContextProvider.DefaultProvider"/> property.
+ /// </para>
+ /// <para>
+ /// An alternative is to use the
<c>log4net.Config.SecurityContextProviderAttribute</c>
+ /// This attribute can be applied to an assembly in the same way as the
+ /// <c>log4net.Config.XmlConfiguratorAttribute"</c>. The attribute takes
+ /// the type to use as the <see cref="SecurityContextProvider"/> as an
argument.
+ /// </para>
+ /// </remarks>
/// <author>Nicko Cadell</author>
public class SecurityContextProvider
{
/// <summary>
/// The default provider
/// </summary>
- private static SecurityContextProvider s_defaultProvider = null;
+ private static SecurityContextProvider s_defaultProvider = new
SecurityContextProvider();
/// <summary>
/// Gets or sets the default SecurityContextProvider
@@ -41,40 +69,34 @@
/// </value>
/// <remarks>
/// <para>
- /// ........... HOW LOOKUP PROVIDER
+ /// The default provider is used by configured components that
+ /// require a <see cref="SecurityContext"/> and have not had one
+ /// given to them.
+ /// </para>
+ /// <para>
+ /// By default this is an instance of <see
cref="SecurityContextProvider"/>
+ /// that returns <see cref="NullSecurityContext"/> objects.
+ /// </para>
+ /// <para>
+ /// The default provider can be set programmatically by setting
+ /// the value of this property to a sub class of <see
cref="SecurityContextProvider"/>
+ /// that has the desired behavior.
/// </para>
/// </remarks>
public static SecurityContextProvider DefaultProvider
{
- get
- {
- if (s_defaultProvider == null)
- {
- lock(typeof(SecurityContextProvider))
- {
- if (s_defaultProvider == null)
- {
- // Lookup the default
provider
- s_defaultProvider =
CreateDefaultProvider();
- }
- }
- }
- return s_defaultProvider;
- }
- set
- {
- s_defaultProvider = value;
- }
- }
-
- private static SecurityContextProvider CreateDefaultProvider()
- {
- return new SecurityContextProvider();
+ get { return s_defaultProvider; }
+ set { s_defaultProvider = value; }
}
/// <summary>
/// Protected default constructor to allow subclassing
/// </summary>
+ /// <remarks>
+ /// <para>
+ /// Protected default constructor to allow subclassing
+ /// </para>
+ /// </remarks>
protected SecurityContextProvider()
{
}
@@ -87,6 +109,10 @@
/// <remarks>
/// <para>
/// The default implementation is to return a <see
cref="NullSecurityContext"/>.
+ /// </para>
+ /// <para>
+ /// Subclasses should override this method to provide their own
+ /// behavior.
/// </para>
/// </remarks>
public virtual SecurityContext CreateSecurityContext(object
consumer)
1.6 +62 -13 logging-log4net/src/Core/WrapperMap.cs
Index: WrapperMap.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/WrapperMap.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WrapperMap.cs 7 Jun 2004 01:05:14 -0000 1.5
+++ WrapperMap.cs 6 Dec 2004 02:20:06 -0000 1.6
@@ -29,6 +29,17 @@
/// Delegate used to handle creation of new wrappers.
/// </summary>
/// <param name="logger">The logger to wrap in a wrapper.</param>
+ /// <remarks>
+ /// <para>
+ /// Delegate used to handle creation of new wrappers. This delegate
+ /// is called from the <see cref="WrapperMap.CreateNewWrapperObject"/>
+ /// method to construct the wrapper for the specified logger.
+ /// </para>
+ /// <para>
+ /// The delegate to use is supplied to the <see cref="WrapperMap"/>
+ /// constructor.
+ /// </para>
+ /// </remarks>
public delegate ILoggerWrapper WrapperCreationHandler(ILogger logger);
#endregion WrapperCreationHandler
@@ -39,8 +50,15 @@
/// <remarks>
/// <para>
/// This class maintains a mapping between <see cref="ILogger"/>
objects and
- /// <see cref="ILoggerWrapper"/> objects. Use the indexer accessor to
lookup the
- /// <see cref="ILoggerWrapper"/> for the specified <see
cref="ILogger"/>.
+ /// <see cref="ILoggerWrapper"/> objects. Use the <see
cref="GetWrapper"/> method to
+ /// lookup the <see cref="ILoggerWrapper"/> for the specified <see
cref="ILogger"/>.
+ /// </para>
+ /// <para>
+ /// New wrapper instances are created by the <see
cref="CreateNewWrapperObject"/>
+ /// method. The default behavior is for this method to delegate
construction
+ /// of the wrapper to the <see cref="WrapperCreationHandler"/> delegate
supplied
+ /// to the constructor. This allows specialization of the behavior
without
+ /// requiring subclassing of this type.
/// </para>
/// </remarks>
/// <author>Nicko Cadell</author>
@@ -50,10 +68,15 @@
#region Public Instance Constructors
/// <summary>
- /// Initializes a new instance of the <see cref="WrapperMap" />
class with
- /// the specified handler to create the wrapper objects.
+ /// Initializes a new instance of the <see cref="WrapperMap" />
/// </summary>
/// <param name="createWrapperHandler">The handler to use to
create the wrapper objects.</param>
+ /// <remarks>
+ /// <para>
+ /// Initializes a new instance of the <see cref="WrapperMap" />
class with
+ /// the specified handler to create the wrapper objects.
+ /// </para>
+ /// </remarks>
public WrapperMap(WrapperCreationHandler createWrapperHandler)
{
m_createWrapperHandler = createWrapperHandler;
@@ -69,10 +92,18 @@
/// <summary>
/// Gets the wrapper object for the specified logger.
/// </summary>
+ /// <returns>The wrapper object for the specified
logger</returns>
/// <remarks>
- /// If the logger is null then the corresponding wrapper is null
+ /// <para>
+ /// If the logger is null then the corresponding wrapper is
null.
+ /// </para>
+ /// <para>
+ /// Looks up the wrapper it it has previously been requested and
+ /// returns it. If the wrapper has never been requested before
then
+ /// the <see cref="CreateNewWrapperObject"/> virtual method is
+ /// called.
+ /// </para>
/// </remarks>
- /// <returns>The wrapper object for the specified
logger</returns>
virtual public ILoggerWrapper GetWrapper(ILogger logger)
{
// If the logger is null then the corresponding wrapper
is null
@@ -126,6 +157,13 @@
/// <value>
/// Map of logger repositories.
/// </value>
+ /// <remarks>
+ /// <para>
+ /// Gets the hashtable that is keyed on <see
cref="ILoggerRepository"/>. The
+ /// values are hashtables keyed on <see cref="ILogger"/> with
the
+ /// value being the corresponding <see cref="ILoggerWrapper"/>.
+ /// </para>
+ /// </remarks>
protected Hashtable Repositories
{
get { return this.m_repositories; }
@@ -139,12 +177,14 @@
/// Creates the wrapper object for the specified logger.
/// </summary>
/// <param name="logger">The logger to wrap in a
wrapper.</param>
+ /// <returns>The wrapper object for the logger.</returns>
/// <remarks>
+ /// <para>
/// This implementation uses the <see
cref="WrapperCreationHandler"/>
/// passed to the constructor to create the wrapper. This method
/// can be overridden in a subclass.
+ /// </para>
/// </remarks>
- /// <returns>The wrapper object for the logger.</returns>
virtual protected ILoggerWrapper CreateNewWrapperObject(ILogger
logger)
{
if (m_createWrapperHandler != null)
@@ -158,14 +198,23 @@
/// Called when a monitored repository shutdown event is
received.
/// </summary>
/// <param name="repository">The <see
cref="ILoggerRepository"/> that is shutting down</param>
+ /// <remarks>
+ /// <para>
+ /// This method is called when a <see
cref="ILoggerRepository"/> that this
+ /// <see cref="WrapperMap"/> is holding loggers for has
signaled its shutdown
+ /// event <see cref="ILoggerRepository.ShutdownEvent"/>. The
default
+ /// behavior of this method is to release the references to the
loggers
+ /// and their wrappers generated for this repository.
+ /// </para>
+ /// </remarks>
virtual protected void RepositoryShutdown(ILoggerRepository
repository)
{
lock(this)
{
- // Remove all repository from map
+ // Remove the repository from map
m_repositories.Remove(repository);
- // Unhook all events from the repository
+ // Unhook events from the repository
repository.ShutdownEvent -= m_shutdownHandler;
}
}
@@ -189,19 +238,19 @@
#region Private Instance Variables
/// <summary>
- /// Map of logger repositories.
+ /// Map of logger repositories to hashtables of ILogger to
ILoggerWrapper mappings
/// </summary>
- private Hashtable m_repositories = new Hashtable();
+ private readonly Hashtable m_repositories = new Hashtable();
/// <summary>
/// The handler to use to create the extension wrapper objects.
/// </summary>
- private WrapperCreationHandler m_createWrapperHandler;
+ private readonly WrapperCreationHandler m_createWrapperHandler;
/// <summary>
/// Internal reference to the delegate used to register for
repository shutdown events.
/// </summary>
- private LoggerRepositoryShutdownEventHandler m_shutdownHandler;
+ private readonly LoggerRepositoryShutdownEventHandler
m_shutdownHandler;
#endregion Private Instance Variables
}