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); } }
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); } }
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); }
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); }
public static Column[] CreateColumns(int count, IColumnizedLogLine parent) { return(CreateColumns(count, parent, string.Empty)); }
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)); } }