示例#1
0
 public override void Dispose()
 {
     lock (_remoteAppenders)
     {
         foreach (var remoteAppender in _remoteAppenders.Values)
         {
             LoggerManagement.RemoveListenerFromStream(remoteAppender.BufferMessage);
         }
         _remoteAppenders.Clear();
     }
     base.Dispose();
 }
 void IServerModuleStateContext.Destruct()
 {
     // Destroy local container
     if (Container != null)
     {
         Container.Destroy();
         Container = null;
     }
     // Deregister from logging
     LoggerManagement.RemoveListenerFromStream(ProcessLogMessage);
     LoggerManagement.DeactivateLogging(this);
     Logger.Log(LogLevel.Info, "{0} destructed!", Name);
 }
示例#3
0
        /// <summary>
        /// Remove a remote appender from the logging stream
        /// </summary>
        /// <param name="appenderId"></param>
        public void RemoveRemoteLogAppender(int appenderId)
        {
            RemoteAppender appender;

            lock (_remoteAppenders)
                appender = _remoteAppenders.ContainsKey(appenderId) ? _remoteAppenders[appenderId] : null;

            if (appender == null)
            {
                return;
            }

            LoggerManagement.RemoveListenerFromStream(appender.BufferMessage);
        }
示例#4
0
        private void CheckDeadAppender()
        {
            IEnumerable <KeyValuePair <int, RemoteAppender> > appenders;

            lock (_remoteAppenders)
            {
                appenders = _remoteAppenders.Where(appender => (DateTime.Now - appender.Value.LastFlush).TotalMilliseconds > Config.AppenderTimeOut)
                            .ToArray();
            }
            foreach (var appender in appenders)
            {
                LoggerManagement.RemoveListenerFromStream(appender.Value.BufferMessage);
            }
            lock (_remoteAppenders)
            {
                foreach (var appender in appenders)
                {
                    _remoteAppenders.Remove(appender.Key);
                }
            }
        }