You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2004/09/27 00:39:38 UTC

cvs commit: logging-log4net/src/Util AppenderAttachedImpl.cs

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