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
  
  
  

Reply via email to