private void DumpState() { Logger.InfoFormat("Dumping currently checked out IRedisClient instances"); var inUseInstances = new Func <TrackingFrame[]>(() => { lock (this.trackingFrames) { return(Enumerable.ToArray(this.trackingFrames)); } }).Invoke(); var summaryByType = inUseInstances.GroupBy(x => x.ProvidedToInstanceOfType.FullName); foreach (var grouped in summaryByType) { Logger.InfoFormat("{0,60}: {1,-9} oldest {2}", grouped.Key, grouped.Count(), grouped.Min(x => x.Initialised)); } foreach (var trackingFrame in inUseInstances) { Logger.DebugFormat("Instance {0} allocated to {1} at {2} ({3})", trackingFrame.Id, trackingFrame.ProvidedToInstanceOfType.FullName, trackingFrame.Initialised, trackingFrame.ProvidedToInstanceOfType.FullName); } }
private void DumpState() { Logger.InfoFormat("Dumping currently checked out IRedisClient instances"); var inUseInstances = new Func<TrackingFrame[]>(() => { lock (this.trackingFrames) { return Enumerable.ToArray(this.trackingFrames); } }).Invoke(); var summaryByType = inUseInstances.GroupBy(x => x.ProvidedToInstanceOfType.FullName); foreach (var grouped in summaryByType) { Logger.InfoFormat("{0,60}: {1,-9} oldest {2}", grouped.Key, grouped.Count(), grouped.Min(x => x.Initialised)); } foreach (var trackingFrame in inUseInstances) { Logger.DebugFormat("Instance {0} allocated to {1} at {2} ({3})", trackingFrame.Id, trackingFrame.ProvidedToInstanceOfType.FullName, trackingFrame.Initialised, trackingFrame.ProvidedToInstanceOfType.FullName); } }