/// <summary> /// Removes the specified appender from the list of appenders. /// </summary> /// <param name="appender">The appender to remove.</param> /// <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="M:log4net.Appender.IAppender.Close" /> on the appender removed. /// </remarks> public virtual IAppender RemoveAppender(IAppender appender) { lock (this) { if (appender != null && m_appenderAttachedImpl != null) { return(m_appenderAttachedImpl.RemoveAppender(appender)); } } return(null); }
/// <summary> /// 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> /// <para> /// 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="M:log4net.Appender.IAppender.Close" /> on the appender removed. /// </para> /// </remarks> public virtual IAppender RemoveAppender(IAppender appender) { m_appenderLock.AcquireWriterLock(); try { if (appender != null && m_appenderAttachedImpl != null) { return(m_appenderAttachedImpl.RemoveAppender(appender)); } } finally { m_appenderLock.ReleaseWriterLock(); } return(null); }