internal void OutputLine(PSTraceSourceOptions flag, string format, params object[] args) { if (this.alreadyTracing) { return; } this.alreadyTracing = true; try { StringBuilder lineBuilder = new StringBuilder(); if (this.showHeaders) { lineBuilder.Append((object)PSTraceSource.GetLinePrefix(flag)); } PSTraceSource.AddTab(ref lineBuilder); if (args != null && args.Length > 0) { for (int index = 0; index < args.Length; ++index) { if (args[index] == null) { args[index] = (object)"null"; } } lineBuilder.AppendFormat((IFormatProvider)Thread.CurrentThread.CurrentCulture, format, args); } else { lineBuilder.Append(format); } this.TraceSource.TraceInformation(lineBuilder.ToString()); } finally { this.alreadyTracing = false; } }