示例#1
0
        public void TraceEnter(string methodInfo, string[] paramNames, object[] paramValues)
        {
            string argInfo = string.Empty;

            if (paramNames != null)
            {
                StringBuilder parameters = new StringBuilder();
                for (int i = 0; i < paramNames.Length; i++)
                {
                    parameters.AppendFormat("{0}={1}", paramNames[i],
                                            paramValues[i] == null ? NullString : paramValues[i].ToString()
                                            .Replace("\r\n", string.Empty)
                                            .Replace("\"", string.Empty)
                                            .Replace(@"\", @"/"));
                    if (i < paramNames.Length - 1)
                    {
                        parameters.Append(", ");
                    }
                }
                argInfo = parameters.ToString();
            }

            TracerContext.Enter();
            string message = String.Empty;

            if (TracerContext.Tracer == null)
            {
                message = String.Format(_textEnter, methodInfo, argInfo);
            }
            else
            {
                message = String.Format(_textEnterWithTracer, methodInfo, argInfo, TracerContext.Tracer.TracerId, TracerContext.Tracer.SpanId, TracerContext.IP);
            }

            Log.Info(message);
        }