コード例 #1
0
ファイル: ProfilerListener.cs プロジェクト: fushenwen/Tiraggo
        private void MyTraceEventHandler(ITraceArguments packet)
        {
            string data = "";

            // TransactionId
            data += (packet.SqlCommand.Transaction != null) ? packet.SqlCommand.Transaction.GetHashCode().ToString() : "";
            data += delimiter;

            // ObjectType
            object caller = packet.Request.DynamicQuery ?? packet.Request.Caller;

            if (caller != null)
            {
                data += caller.GetType().Name;
            }
            data += delimiter;

            // StackTrace - ApplicationName - TraceChannel - ThreadId - SQL - Duration
            data += packet.CallStack + delimiter + packet.ApplicationName + delimiter + packet.TraceChannel + delimiter +
                    packet.ThreadId.ToString() + delimiter + packet.SqlCommand.CommandText + delimiter + packet.Duration.ToString() + delimiter +
                    packet.Ticks.ToString() + delimiter + packet.PacketOrder.ToString() + delimiter + packet.Action + delimiter + packet.Syntax + delimiter;

            data += packet.Exception == null ? string.Empty : packet.Exception;
            data += delimiter;

            if (packet.Parameters != null && packet.Parameters.Count > 0)
            {
                bool first = true;

                for (int i = 0; i < packet.Parameters.Count; i++)
                {
                    ITraceParameter param = packet.Parameters[i] as ITraceParameter;

                    if (!first)
                    {
                        data += "«";
                    }

                    data += param.Name + "«" + param.Direction + "«" + param.ParamType + "«";
                    data += param.BeforeValue != null?Convert.ToString(param.BeforeValue) : "null";

                    data += "«";
                    data += param.AfterValue != null?Convert.ToString(param.AfterValue) : "null";

                    first = false;
                }
            }

            broadcast.SendToChannel(packet.TraceChannel, data);
        }
コード例 #2
0
ファイル: ProfilerListener.cs プロジェクト: BrewDawg/Tiraggo
        private void MyTraceEventHandler(ITraceArguments packet)
        {
            string data = "";

            // TransactionId
            data += (packet.SqlCommand.Transaction != null) ? packet.SqlCommand.Transaction.GetHashCode().ToString() : "";
            data += delimiter;

            // ObjectType
            object caller = packet.Request.DynamicQuery ?? packet.Request.Caller;

            if (caller != null)
            {
                data += caller.GetType().Name;
            }
            data += delimiter;

            // StackTrace - ApplicationName - TraceChannel - ThreadId - SQL - Duration
            data += packet.CallStack + delimiter + packet.ApplicationName + delimiter + packet.TraceChannel + delimiter +
                packet.ThreadId.ToString() + delimiter + packet.SqlCommand.CommandText + delimiter + packet.Duration.ToString() + delimiter +
                packet.Ticks.ToString() + delimiter + packet.PacketOrder.ToString() + delimiter + packet.Action + delimiter + packet.Syntax + delimiter;

            data += packet.Exception == null ? string.Empty : packet.Exception;
            data += delimiter;

            if (packet.Parameters != null && packet.Parameters.Count > 0)
            {
                bool first = true;

                for (int i = 0; i < packet.Parameters.Count; i++)
                {
                    ITraceParameter param = packet.Parameters[i] as ITraceParameter;

                    if (!first) data += "«";

                    data += param.Name + "«" + param.Direction + "«" + param.ParamType + "«";
                    data += param.BeforeValue != null ? Convert.ToString(param.BeforeValue) : "null";
                    data += "«";
                    data += param.AfterValue != null ? Convert.ToString(param.AfterValue) : "null";

                    first = false;
                }
            }

            broadcast.SendToChannel(packet.TraceChannel, data);
        }