public IEnumerable<LogEvent> Evaluate(string logFileName, string line)
        {
            _rwLocker.EnterReadLock();
            try
            {
                foreach (LogEventEvaluationRule eventEvaluationRule in _eventEvaluationRules)
                {
                    Match m = eventEvaluationRule.Match(line);
                    if (!m.Success) continue;
                    LogEvent evt = new LogEvent
                                       {
                                           Source = eventEvaluationRule.GetSource(logFileName, m),
                                           Category = eventEvaluationRule.GetCounterCategory(logFileName, m),
                                           Counter = eventEvaluationRule.GetCounterName(logFileName, m),
                                           Instance = eventEvaluationRule.GetInstance(logFileName, m),
                                           Type = eventEvaluationRule.EventType,
                                           DateTime = eventEvaluationRule.GetDateTime(logFileName, m),
                                              
                                           ExtendedData = eventEvaluationRule.GetExtendedData(logFileName, m),
                                           Value = eventEvaluationRule.GetValue(logFileName, m)

                                       };
                    yield return evt;
                }
            }
            finally
            {
                _rwLocker.ExitReadLock();
            }

        }
 public LogEventArgs(LogEvent logEvent)
 {
     LogEvent = logEvent;
 }