Example #1
0
 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;
     }
 }
Example #2
0
 /// <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;
            }
        }
Example #4
0
 public void Dispose()
 {
     _appender.Close();
     FileAppenderFactory.RemoveAppender(_loggerName, _appender);
     _log = null;
 }