예제 #1
0
        private LogEvent CreateEvent(DefinitionElement definition, Timestamp timestamp, LogElement element)
        {
            var logEvent = new LogEvent(definition.Category, element);

            foreach (string key in definition.GetMetadataKeys())
            {
                string regex;
                if (definition.Metadata.TryGetValue(key, out regex))
                {
                    List <string> matches;
                    if (StringHelper.TryGetMatch(element.LogMessage, regex, out matches))
                    {
                        logEvent.AddMetadata(key, matches);
                    }
                }
                if (!String.IsNullOrEmpty(timestamp.Pattern) && !String.IsNullOrEmpty(timestamp.Format))
                {
                    List <string> rawTimestamp;
                    if (StringHelper.TryGetMatch(element.LogMessage, timestamp.Pattern, out rawTimestamp))
                    {
                        var timestampObject = DateTime.ParseExact(rawTimestamp.ElementAt(0), timestamp.Format, CultureInfo.InvariantCulture);
                        logEvent.Timestamp = timestampObject;
                    }
                }
            }
            return(logEvent);
        }
예제 #2
0
 private LogEvent CreateEvent(DefinitionElement definition, Timestamp timestamp, LogElement element)
 {
     var logEvent = new LogEvent(definition.Category, element);
     foreach (string key in definition.GetMetadataKeys())
     {
         string regex;
         if (definition.Metadata.TryGetValue(key, out regex))
         {
             List<string> matches;
             if (StringHelper.TryGetMatch(element.LogMessage, regex, out matches)){
                 logEvent.AddMetadata(key, matches);
             }
         }
         if (!String.IsNullOrEmpty(timestamp.Pattern) && !String.IsNullOrEmpty(timestamp.Format))
         {
             List<string> rawTimestamp;
             if (StringHelper.TryGetMatch(element.LogMessage, timestamp.Pattern, out rawTimestamp))
             {
                 var timestampObject = DateTime.ParseExact(rawTimestamp.ElementAt(0), timestamp.Format, CultureInfo.InvariantCulture);
                 logEvent.Timestamp = timestampObject;
             }
         }
     }
     return logEvent;
 }