private void SubProcessSQL(LogItem item, string chunk) { item.Operation = LogParserHelper.RecognizeOperation(chunk); item.LastNamedItem = lastNamedItem; lastNamedItem = null; }
public void Dump(string fileName) { var ctr = 0; var sb = new StringBuilder(); LogItem pred = null; LogItem first = null; LogItem last = null; // todo: refactoring foreach (var item in items) { switch (item.LoggerType) { case LoggerTypes.NamedQuery: if (!item.Hide) { pred = UpdateDelta(item, pred); } break; case LoggerTypes.Transaction: if (item.CanDumpTransaction()) { pred = UpdateDelta(item, pred); } break; case LoggerTypes.Common: pred = UpdateDelta(item, pred); break; case LoggerTypes.SQL: if (item.Operation != Operations.Invalid) { pred = UpdateDelta(item, pred); } break; } if (first == null) { first = pred; } last = pred; } foreach (var item in items) { switch (item.LoggerType) { case LoggerTypes.NamedQuery: if (!item.Hide) { var name = item.QueryName; if (string.IsNullOrEmpty(name)) { name = "???"; } sb.AppendFormat("{0} ({1}) NamedQuery {2}", GetPrefix(item), ++ctr, name).AppendLine(); } break; case LoggerTypes.Transaction: if (item.CanDumpTransaction()) { sb.AppendFormat("{0} Transaction {1}", GetPrefix(item), LogParserHelper.ConvertToString(item.Value)) .AppendLine(); } break; case LoggerTypes.Common: sb.AppendFormat("{0} Marker ({1}): {2}", GetPrefix(item), item.Level, LogParserHelper.ConvertToString(item.Value)).AppendLine(); break; case LoggerTypes.SQL: if (item.Operation != Operations.Invalid) { if (string.IsNullOrEmpty(item.QueryName)) { sb.AppendFormat("{0} ({1}) SQL {2}: {3}", GetPrefix(item), ++ctr, item.Operation, LogParserHelper.ConvertToString(item.Value)).AppendLine(); } else { sb.AppendFormat("{0} ({1}) Named Query {2}: {3}", GetPrefix(item), ++ctr, item.QueryName, LogParserHelper.ConvertToString(item.Value)).AppendLine(); } } break; } } if (first != null && last != null) { sb.AppendFormat("Total time: {0}s", last.GetDelta(first)).AppendLine(); } sb.AppendFormat("Queries: {0}", ctr).AppendLine(); File.WriteAllText(fileName, sb.ToString()); }
private void SubProcessTransaction(LogItem item, string chunk) { item.Transaction = LogParserHelper.RecognizeTransaction(chunk); }
private static void ClassifyNamedQuery(QueriesDict dict, LogItem item) { item.Body = LogParserHelper.GetNamedQueryBody(item.Value.ToString()); item.QueryName = dict.GetQuery(item.Body, item.Line); }