Exemplo n.º 1
0
        public DateTime GetTimestamp(ILogLineColumnizerCallback callback, ILogLine line)
        {
            IColumnizedLogLine cols = SplitLine(callback, line);

            if (cols == null || cols.ColumnValues == null || cols.ColumnValues.Length < 2)
            {
                return(DateTime.MinValue);
            }
            if (cols.ColumnValues[0].FullValue.Length == 0 || cols.ColumnValues[1].FullValue.Length == 0)
            {
                return(DateTime.MinValue);
            }
            FormatInfo formatInfo = _timeFormatDeterminer.DetermineDateTimeFormatInfo(line.FullLine);

            if (formatInfo == null)
            {
                return(DateTime.MinValue);
            }

            try
            {
                DateTime dateTime = DateTime.ParseExact(
                    cols.ColumnValues[0].FullValue + " " + cols.ColumnValues[1].FullValue, formatInfo.DateTimeFormat,
                    formatInfo.CultureInfo);
                return(dateTime);
            }
            catch (Exception)
            {
                return(DateTime.MinValue);
            }
        }
Exemplo n.º 2
0
        public DateTime GetTimestamp(ILogLineColumnizerCallback callback, ILogLine line)
        {
            IColumnizedLogLine cols = SplitLine(callback, line);

            if (cols == null || cols.ColumnValues.Length < 8)
            {
                return(DateTime.MinValue);
            }

            if (cols.ColumnValues[2].FullValue.Length == 0)
            {
                return(DateTime.MinValue);
            }

            try
            {
                DateTime dateTime = DateTime.ParseExact(cols.ColumnValues[2].FullValue, "dd/MMM/yyyy:HH:mm:ss zzz",
                                                        new CultureInfo("en-US"));
                return(dateTime);
            }
            catch (Exception)
            {
                return(DateTime.MinValue);
            }
        }
Exemplo n.º 3
0
        public static Column[] CreateColumns(int count, IColumnizedLogLine parent, string defaultValue)
        {
            Column[] output = new Column[count];

            for (int i = 0; i < count; i++)
            {
                output[i] = new Column {
                    FullValue = defaultValue, Parent = parent
                };
            }

            return(output);
        }
Exemplo n.º 4
0
 internal IColumnizedLogLine GetColumnsForLine(LogfileReader logFileReader, int lineNumber, ILogLineColumnizer columnizer, ColumnizerCallback columnizerCallback)
 {
     if (_lastColumnizer != columnizer || _lastLineNumber != lineNumber && _cachedColumns != null || columnizerCallback.LineNum != lineNumber)
     {
         _lastColumnizer = columnizer;
         _lastLineNumber = lineNumber;
         ILogLine line = logFileReader.GetLogLineWithWait(lineNumber);
         if (line != null)
         {
             columnizerCallback.LineNum = lineNumber;
             _cachedColumns             = columnizer.SplitLine(columnizerCallback, line);
         }
         else
         {
             _cachedColumns = null;
         }
     }
     return(_cachedColumns);
 }
Exemplo n.º 5
0
 public static Column[] CreateColumns(int count, IColumnizedLogLine parent)
 {
     return(CreateColumns(count, parent, string.Empty));
 }
Exemplo n.º 6
0
        private static bool TestFilterMatch(FilterParams filterParams, ILogLine line,
                                            LogExpert.ILogLineColumnizerCallback columnizerCallback)
        {
            string lowerSearchText;
            string searchText;
            Regex  rex;

            if (filterParams.isInRange)
            {
                lowerSearchText = filterParams.lowerRangeSearchText;
                searchText      = filterParams.rangeSearchText;
                rex             = filterParams.rangeRex;
            }
            else
            {
                lowerSearchText = filterParams.lowerSearchText;
                searchText      = filterParams.searchText;
                rex             = filterParams.rex;
            }

            if (searchText == null || lowerSearchText == null || searchText.Length == 0)
            {
                return(false);
            }

            if (filterParams.columnRestrict)
            {
                IColumnizedLogLine columns = filterParams.currentColumnizer.SplitLine(columnizerCallback, line);
                bool found = false;
                foreach (int colIndex in filterParams.columnList)
                {
                    if (colIndex < columns.ColumnValues.Length
                        ) // just to be sure, maybe the columnizer has changed anyhow
                    {
                        if (columns.ColumnValues[colIndex].FullValue.Trim().Length == 0)
                        {
                            if (filterParams.emptyColumnUsePrev)
                            {
                                string prevValue = (string)filterParams.lastNonEmptyCols[colIndex];
                                if (prevValue != null)
                                {
                                    if (TestMatchSub(filterParams, prevValue, lowerSearchText, searchText, rex,
                                                     filterParams.exactColumnMatch))
                                    {
                                        found = true;
                                    }
                                }
                            }
                            else if (filterParams.emptyColumnHit)
                            {
                                return(true);
                            }
                        }
                        else
                        {
                            filterParams.lastNonEmptyCols[colIndex] = columns.ColumnValues[colIndex].FullValue;
                            if (TestMatchSub(filterParams, columns.ColumnValues[colIndex].FullValue, lowerSearchText,
                                             searchText, rex,
                                             filterParams.exactColumnMatch))
                            {
                                found = true;
                            }
                        }
                    }
                }
                return(found);
            }
            else
            {
                return(TestMatchSub(filterParams, line.FullLine, lowerSearchText, searchText, rex, false));
            }
        }