コード例 #1
0
 private void SubProcessSQL(LogItem item, string chunk)
 {
     item.Operation     = LogParserHelper.RecognizeOperation(chunk);
     item.LastNamedItem = lastNamedItem;
     lastNamedItem      = null;
 }
コード例 #2
0
        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());
        }
コード例 #3
0
 private void SubProcessTransaction(LogItem item, string chunk)
 {
     item.Transaction = LogParserHelper.RecognizeTransaction(chunk);
 }
コード例 #4
0
 private static void ClassifyNamedQuery(QueriesDict dict, LogItem item)
 {
     item.Body      = LogParserHelper.GetNamedQueryBody(item.Value.ToString());
     item.QueryName = dict.GetQuery(item.Body, item.Line);
 }