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); }
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); }