static Counter CreateCounter(string name, string category, bool logMessages, string id, bool isTimer) { if (name == null) { throw new ArgumentNullException("name", "Counters must have a Name"); } InitializeHandlers(); if (category == null) { category = "Global"; } lock (counters) { CounterCategory cat = GetCategory(category); if (cat == null) { cat = new CounterCategory(category); categories.Add(cat); } Counter c = isTimer ? new TimerCounter(name, cat) : new Counter(name, cat); c.Id = id; c.LogMessages = logMessages; cat.AddCounter(c); Counter old; if (counters.TryGetValue(name, out old)) { old.Disposed = true; } counters [name] = c; if (!string.IsNullOrEmpty(id)) { countersByID [id] = c; } foreach (var h in handlers) { if (h.SupportsCounter(c)) { c.Handlers.Add(h); } } c.UpdateStatus(); return(c); } }
static Counter CreateCounter(string name, string category, bool logMessages, string id, bool isTimer) { InitializeHandlers(); if (category == null) { category = "Global"; } lock (counters) { CounterCategory cat = GetCategory(category); if (cat == null) { cat = new CounterCategory(category); categories.Add(cat); } Counter c = isTimer ? new TimerCounter(name, cat) : new Counter(name, cat); c.Id = id; c.LogMessages = logMessages; cat.AddCounter(c); Counter old; if (counters.TryGetValue(name, out old)) { old.Disposed = true; } counters [name] = c; foreach (var h in handlers) { if (h.SupportsCounter(c)) { c.Handlers.Add(h); } } c.UpdateStatus(); return(c); } }