public void LogEvent(string eventName)
{
if (string.IsNullOrEmpty(eventName))
{
throw new ArgumentNullException(nameof(eventName));
}
QueuedEvents.AddOrUpdate(eventName,
(name) =>
{
// create the default event that will be added
// if an event isn't already queued for this event name
return new SystemMetricEvent
{
EventName = eventName.ToLowerInvariant(),
Count = 1
};
},
(name, evtToUpdate) =>
{
// update the existing event
evtToUpdate.Count++;
return evtToUpdate;
});
}