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