nicko 2004/09/26 15:39:38
Modified: src/Appender BufferingForwardingAppender.cs
ForwardingAppender.cs
src/Core IAppenderAttachable.cs
src/Repository/Hierarchy Logger.cs
src/Util AppenderAttachedImpl.cs
Log:
Amended the IAppenderAttachable interface to make the behaviour regarding
closing the appenders more explicit. Updated the RemoveAppender methods to
return the appender removed.
Revision Changes Path
1.4 +18 -4
logging-log4net/src/Appender/BufferingForwardingAppender.cs
Index: BufferingForwardingAppender.cs
===================================================================
RCS file:
/home/cvs/logging-log4net/src/Appender/BufferingForwardingAppender.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BufferingForwardingAppender.cs 23 Feb 2004 03:18:02 -0000 1.3
+++ BufferingForwardingAppender.cs 26 Sep 2004 22:39:38 -0000 1.4
@@ -213,30 +213,44 @@
/// Removes the specified appender from the list of appenders.
/// </summary>
/// <param name="appender">The appender to remove.</param>
- virtual public void RemoveAppender(IAppender appender)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ virtual public IAppender RemoveAppender(IAppender appender)
{
lock(this)
{
if (appender != null && m_appenderAttachedImpl
!= null)
{
-
m_appenderAttachedImpl.RemoveAppender(appender);
+ return
m_appenderAttachedImpl.RemoveAppender(appender);
}
}
+ return null;
}
/// <summary>
/// Removes the appender with the specified name from the list
of appenders.
/// </summary>
/// <param name="name">The name of the appender to
remove.</param>
- virtual public void RemoveAppender(string name)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ virtual public IAppender RemoveAppender(string name)
{
lock(this)
{
if (name != null && m_appenderAttachedImpl !=
null)
{
-
m_appenderAttachedImpl.RemoveAppender(name);
+ return
m_appenderAttachedImpl.RemoveAppender(name);
}
}
+ return null;
}
#endregion Implementation of IAppenderAttachable
1.4 +18 -4 logging-log4net/src/Appender/ForwardingAppender.cs
Index: ForwardingAppender.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Appender/ForwardingAppender.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ForwardingAppender.cs 23 Feb 2004 03:18:02 -0000 1.3
+++ ForwardingAppender.cs 26 Sep 2004 22:39:38 -0000 1.4
@@ -192,30 +192,44 @@
/// Removes the specified appender from the list of appenders.
/// </summary>
/// <param name="appender">The appender to remove.</param>
- virtual public void RemoveAppender(IAppender appender)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ virtual public IAppender RemoveAppender(IAppender appender)
{
lock(this)
{
if (appender != null && m_appenderAttachedImpl
!= null)
{
-
m_appenderAttachedImpl.RemoveAppender(appender);
+ return
m_appenderAttachedImpl.RemoveAppender(appender);
}
}
+ return null;
}
/// <summary>
/// Removes the appender with the specified name from the list
of appenders.
/// </summary>
/// <param name="name">The name of the appender to
remove.</param>
- virtual public void RemoveAppender(string name)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ virtual public IAppender RemoveAppender(string name)
{
lock(this)
{
if (name != null && m_appenderAttachedImpl !=
null)
{
-
m_appenderAttachedImpl.RemoveAppender(name);
+ return
m_appenderAttachedImpl.RemoveAppender(name);
}
}
+ return null;
}
#endregion Implementation of IAppenderAttachable
1.3 +17 -2 logging-log4net/src/Core/IAppenderAttachable.cs
Index: IAppenderAttachable.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Core/IAppenderAttachable.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- IAppenderAttachable.cs 16 Feb 2004 02:10:52 -0000 1.2
+++ IAppenderAttachable.cs 26 Sep 2004 22:39:38 -0000 1.3
@@ -57,18 +57,33 @@
/// <summary>
/// Removes all attached appenders.
/// </summary>
+ /// <remarks>
+ /// Removes and closes all attached appenders
+ /// </remarks>
void RemoveAllAppenders();
/// <summary>
/// Removes the specified appender from the list of attached
appenders.
/// </summary>
/// <param name="appender">The appender to remove.</param>
- void RemoveAppender(IAppender appender);
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ IAppender RemoveAppender(IAppender appender);
/// <summary>
/// Removes the appender with the specified name from the list
of appenders.
/// </summary>
/// <param name="name">The name of the appender to
remove.</param>
- void RemoveAppender(string name);
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ IAppender RemoveAppender(string name);
}
}
1.7 +14 -4 logging-log4net/src/Repository/Hierarchy/Logger.cs
Index: Logger.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Repository/Hierarchy/Logger.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Logger.cs 19 Sep 2004 17:52:55 -0000 1.6
+++ Logger.cs 26 Sep 2004 22:39:38 -0000 1.7
@@ -283,46 +283,56 @@
/// Remove the appender passed as parameter form the list of
appenders.
/// </summary>
/// <param name="appender">The appender to remove</param>
+ /// <returns>The appender removed from the list</returns>
/// <remarks>
/// Remove the appender passed as parameter form the list of
appenders.
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
/// </remarks>
- virtual public void RemoveAppender(IAppender appender)
+ virtual public IAppender RemoveAppender(IAppender appender)
{
m_appenderLock.AcquireWriterLock();
try
{
if (appender != null && m_appenderAttachedImpl
!= null)
{
-
m_appenderAttachedImpl.RemoveAppender(appender);
+ return
m_appenderAttachedImpl.RemoveAppender(appender);
}
}
finally
{
m_appenderLock.ReleaseWriterLock();
}
+ return null;
}
/// <summary>
/// Remove the appender passed as parameter form the list of
appenders.
/// </summary>
/// <param name="name">The name of the appender to
remove</param>
+ /// <returns>The appender removed from the list</returns>
/// <remarks>
/// Remove the named appender passed as parameter form the list
of appenders.
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
/// </remarks>
- virtual public void RemoveAppender(string name)
+ virtual public IAppender RemoveAppender(string name)
{
m_appenderLock.AcquireWriterLock();
try
{
if (name != null && m_appenderAttachedImpl !=
null)
{
-
m_appenderAttachedImpl.RemoveAppender(name);
+ return
m_appenderAttachedImpl.RemoveAppender(name);
}
}
finally
{
m_appenderLock.ReleaseWriterLock();
}
+ return null;
}
#endregion
1.3 +20 -4 logging-log4net/src/Util/AppenderAttachedImpl.cs
Index: AppenderAttachedImpl.cs
===================================================================
RCS file: /home/cvs/logging-log4net/src/Util/AppenderAttachedImpl.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AppenderAttachedImpl.cs 16 Feb 2004 02:10:54 -0000 1.2
+++ AppenderAttachedImpl.cs 26 Sep 2004 22:39:38 -0000 1.3
@@ -152,6 +152,9 @@
/// <summary>
/// Removes all attached appenders.
/// </summary>
+ /// <remarks>
+ /// Removes and closes all attached appenders
+ /// </remarks>
public void RemoveAllAppenders()
{
if (m_appenderList != null)
@@ -176,21 +179,34 @@
/// Removes the specified appender from the list of attached
appenders.
/// </summary>
/// <param name="appender">The appender to remove.</param>
- public void RemoveAppender(IAppender appender)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ public IAppender RemoveAppender(IAppender appender)
{
if (appender != null && m_appenderList != null)
{
- m_appenderList.Remove(appender);
+ m_appenderList.Remove(appender);
}
+ return appender;
}
/// <summary>
/// Removes the appender with the specified name from the list
of appenders.
/// </summary>
/// <param name="name">The name of the appender to
remove.</param>
- public void RemoveAppender(string name)
+ /// <returns>The appender removed from the list</returns>
+ /// <remarks>
+ /// The appender removed is not closed.
+ /// If you are discarding the appender you must call
+ /// <see cref="IAppender.Close"/> on the appender removed.
+ /// </remarks>
+ public IAppender RemoveAppender(string name)
{
- RemoveAppender(GetAppender(name));
+ return RemoveAppender(GetAppender(name));
}
#endregion