public void RemoveAllAppenders() { if (this.m_appenderList != null) { AppenderCollection.IAppenderCollectionEnumerator enumerator = this.m_appenderList.GetEnumerator(); try { while (enumerator.MoveNext()) { IAppender current = enumerator.Current; try { current.Close(); } catch (Exception exception) { LogLog.Error(declaringType, "Failed to Close appender [" + current.Name + "]", exception); } } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } this.m_appenderList = null; this.m_appenderArray = null; } }
/// <summary> /// Closes all attached appenders implementing the <see cref="T:log4net.Core.IAppenderAttachable" /> interface. /// </summary> /// <remarks> /// <para> /// Used to ensure that the appenders are correctly shutdown. /// </para> /// </remarks> public virtual void CloseNestedAppenders() { m_appenderLock.AcquireWriterLock(); try { if (m_appenderAttachedImpl != null) { AppenderCollection.IAppenderCollectionEnumerator enumerator = m_appenderAttachedImpl.Appenders.GetEnumerator(); try { while (enumerator.MoveNext()) { IAppender current = enumerator.Current; if (current is IAppenderAttachable) { current.Close(); } } } finally { (enumerator as IDisposable)?.Dispose(); } } } finally { m_appenderLock.ReleaseWriterLock(); } }
private void DefineLogger() { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); IEnumerable <IAppender> ap = hierarchy.GetAppenders().Where(f => f.Name == "ProLoggerFileAppender"); if (ap.Count() != 0) { IAppender fa = ap.First(); fa.Close(); } if (Properties.ProLoggerSettings.Default.SaveToLogFileSetting) { PatternLayout patternLayout = new PatternLayout(); patternLayout.ConversionPattern = "%date [%thread] %-5level - %message%newline"; patternLayout.ActivateOptions(); string logFilePath = ProLoggerSettings.Default.LogFilePathSetting; logFilePath = logFilePath.Replace("[date]", DateTime.Now.ToString("yyyMMdd-HHmmss")); log4net.Appender.FileAppender f = new log4net.Appender.FileAppender(); f.Layout = patternLayout; f.File = logFilePath; f.AppendToFile = true; f.Name = "ProLoggerFileAppender"; f.ActivateOptions(); hierarchy.Root.AddAppender(f); hierarchy.Root.Level = Level.Debug; hierarchy.Configured = true; } }
public void Dispose() { _appender.Close(); FileAppenderFactory.RemoveAppender(_loggerName, _appender); _log = null; }