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); }
/// <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); }
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); } } }