Ejemplo n.º 1
0
        static void OnTraceInternal(TraceInfo info)
        {
            if (info.BeforeExecute)
            {
                WriteTraceLine(info.SqlText, TraceSwitch.DisplayName);
            }
            else if (info.TraceLevel == TraceLevel.Error)
            {
                var sb = new StringBuilder();

                for (var ex = info.Exception; ex != null; ex = ex.InnerException)
                {
                    sb
                    .AppendLine()
                    .AppendFormat("Exception: {0}", ex.GetType())
                    .AppendLine()
                    .AppendFormat("Message  : {0}", ex.Message)
                    .AppendLine()
                    .AppendLine(ex.StackTrace)
                    ;
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.RecordsAffected != null)
            {
                WriteTraceLine("Execution time: {0}. Records affected: {1}.\r\n".Args(info.ExecutionTime, info.RecordsAffected), TraceSwitch.DisplayName);
            }
            else
            {
                WriteTraceLine("Execution time: {0}\r\n".Args(info.ExecutionTime), TraceSwitch.DisplayName);
            }
        }
Ejemplo n.º 2
0
        static void OnTraceInternal(TraceInfo info)
        {
            if (info.BeforeExecute)
            {
                WriteTraceLine(info.SqlText, TraceSwitch.DisplayName);
            }
            else if (info.TraceLevel == TraceLevel.Error)
            {
                var sb = new StringBuilder();

                for (var ex = info.Exception; ex != null; ex = ex.InnerException)
                {
                    sb
                        .AppendLine()
                        .AppendFormat("Exception: {0}", ex.GetType())
                        .AppendLine()
                        .AppendFormat("Message  : {0}", ex.Message)
                        .AppendLine()
                        .AppendLine(ex.StackTrace)
                        ;
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.RecordsAffected != null)
            {
                WriteTraceLine("Execution time: {0}. Records affected: {1}.\r\n".Args(info.ExecutionTime, info.RecordsAffected), TraceSwitch.DisplayName);
            }
            else
            {
                WriteTraceLine("Execution time: {0}\r\n".Args(info.ExecutionTime), TraceSwitch.DisplayName);
            }
        }
Ejemplo n.º 3
0
        static void OnTraceInternal(TraceInfo info)
        {
            switch (info.TraceInfoStep)
            {
            case TraceInfoStep.BeforeExecute:
                WriteTraceLine(info.SqlText, TraceSwitch.DisplayName);
                break;

            case TraceInfoStep.AfterExecute:
                WriteTraceLine(
                    info.RecordsAffected != null
                                                        ? "Query Execution Time: {0}. Records Affected: {1}.\r\n".Args(info.ExecutionTime, info.RecordsAffected)
                                                        : "Query Execution Time: {0}\r\n".Args(info.ExecutionTime),
                    TraceSwitch.DisplayName);
                break;

            case TraceInfoStep.Error:
            {
                var sb = new StringBuilder();

                for (var ex = info.Exception; ex != null; ex = ex.InnerException)
                {
                    sb
                    .AppendLine()
                    .AppendLine("Exception: {0}".Args(ex.GetType()))
                    .AppendLine("Message  : {0}".Args(ex.Message))
                    .AppendLine(ex.StackTrace)
                    ;
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }

            break;

            case TraceInfoStep.MapperCreated:
            {
                var sb = new StringBuilder();

                if (Configuration.Linq.TraceMapperExpression && info.MapperExpression != null)
                {
                    sb.AppendLine(info.MapperExpression.GetDebugView());
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }

            break;

            case TraceInfoStep.Completed:
            {
                var sb = new StringBuilder();

                sb.Append("Total Execution Time: {0}.".Args(info.ExecutionTime));

                if (info.RecordsAffected != null)
                {
                    sb.Append(" Rows Count: {0}.".Args(info.RecordsAffected));
                }

                sb.AppendLine();

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }

            break;
            }
        }
Ejemplo n.º 4
0
        static void OnTraceInternal(TraceInfo info)
        {
            if (info.BeforeExecute)
            {
                var sqlProvider = info.DataConnection.DataProvider.CreateSqlBuilder();
                var sb          = new StringBuilder();

                sb.Append("-- ").Append(info.DataConnection.ConfigurationString);

                if (info.DataConnection.ConfigurationString != info.DataConnection.DataProvider.Name)
                {
                    sb.Append(' ').Append(info.DataConnection.DataProvider.Name);
                }

                if (info.DataConnection.DataProvider.Name != sqlProvider.Name)
                {
                    sb.Append(' ').Append(sqlProvider.Name);
                }

                sb.AppendLine();

                if (info.Command.Parameters != null && info.Command.Parameters.Count > 0)
                {
                    foreach (IDataParameter p in info.Command.Parameters)
                    {
                        sb
                        .Append("-- DECLARE ")
                        .Append(p.ParameterName)
                        .Append(' ')
                        .Append(p.Value == null ? p.DbType.ToString() : p.Value.GetType().Name)
                        .AppendLine();
                    }

                    sb.AppendLine();

                    foreach (IDataParameter p in info.Command.Parameters)
                    {
                        var value = p.Value;

                        if (value is string || value is char)
                        {
                            value = "'" + value.ToString().Replace("'", "''") + "'";
                        }

                        sb
                        .Append("-- SET ")
                        .Append(p.ParameterName)
                        .Append(" = ")
                        .Append(value)
                        .AppendLine();
                    }

                    sb.AppendLine();
                }

                sb.AppendLine(info.Command.CommandText);

                while (sb[sb.Length - 1] == '\n' || sb[sb.Length - 1] == '\r')
                {
                    sb.Length--;
                }

                sb.AppendLine();

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.TraceLevel == TraceLevel.Error)
            {
                var sb = new StringBuilder();

                for (var ex = info.Exception; ex != null; ex = ex.InnerException)
                {
                    sb
                    .AppendLine()
                    .AppendFormat("Exception: {0}", ex.GetType())
                    .AppendLine()
                    .AppendFormat("Message  : {0}", ex.Message)
                    .AppendLine()
                    .AppendLine(ex.StackTrace)
                    ;
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.RecordsAffected != null)
            {
                WriteTraceLine("Execution time: {0}. Records affected: {1}.\r\n".Args(info.ExecutionTime, info.RecordsAffected), TraceSwitch.DisplayName);
            }
            else
            {
                WriteTraceLine("Execution time: {0}\r\n".Args(info.ExecutionTime), TraceSwitch.DisplayName);
            }
        }
Ejemplo n.º 5
0
        static void OnTraceInternal(TraceInfo info)
        {
            if (info.BeforeExecute)
            {
                var sqlProvider = info.DataConnection.DataProvider.CreateSqlBuilder();
                var sb          = new StringBuilder();

                sb.Append("-- ").Append(info.DataConnection.ConfigurationString);

                if (info.DataConnection.ConfigurationString != info.DataConnection.DataProvider.Name)
                    sb.Append(' ').Append(info.DataConnection.DataProvider.Name);

                if (info.DataConnection.DataProvider.Name != sqlProvider.Name)
                    sb.Append(' ').Append(sqlProvider.Name);

                sb.AppendLine();

                if (info.Command.Parameters != null && info.Command.Parameters.Count > 0)
                {
                    foreach (IDataParameter p in info.Command.Parameters)
                        sb
                            .Append("-- DECLARE ")
                            .Append(p.ParameterName)
                            .Append(' ')
                            .Append(p.Value == null ? p.DbType.ToString() : p.Value.GetType().Name)
                            .AppendLine();

                    sb.AppendLine();

                    foreach (IDataParameter p in info.Command.Parameters)
                    {
                        var value = p.Value;

                        if (value is string || value is char)
                            value = "'" + value.ToString().Replace("'", "''") + "'";

                        sb
                            .Append("-- SET ")
                            .Append(p.ParameterName)
                            .Append(" = ")
                            .Append(value)
                            .AppendLine();
                    }

                    sb.AppendLine();
                }

                sb.AppendLine(info.Command.CommandText);

                while (sb[sb.Length - 1] == '\n' || sb[sb.Length - 1] == '\r')
                    sb.Length--;

                sb.AppendLine();

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.TraceLevel == TraceLevel.Error)
            {
                var sb = new StringBuilder();

                for (var ex = info.Exception; ex != null; ex = ex.InnerException)
                {
                    sb
                        .AppendLine()
                        .AppendFormat("Exception: {0}", ex.GetType())
                        .AppendLine()
                        .AppendFormat("Message  : {0}", ex.Message)
                        .AppendLine()
                        .AppendLine(ex.StackTrace)
                        ;
                }

                WriteTraceLine(sb.ToString(), TraceSwitch.DisplayName);
            }
            else if (info.RecordsAffected != null)
            {
                WriteTraceLine("Execution time: {0}. Records affected: {1}.\r\n".Args(info.ExecutionTime, info.RecordsAffected), TraceSwitch.DisplayName);
            }
            else
            {
                WriteTraceLine("Execution time: {0}\r\n".Args(info.ExecutionTime), TraceSwitch.DisplayName);
            }
        }