/// <summary> /// Writes a header line for each header flag that is specified in Headers /// </summary> protected virtual void WriteHeaders(bool flagEntry) { StackFrame frame = new StackFrame(_stackFramesToSkip, true); if (!_hasWrittenDescriptor) { _hasWrittenDescriptor = true; base.WriteLine("#==============================================================================="); base.WriteLine("# Log file starting..."); base.WriteLine("# This file contains diagnostic information."); base.WriteLine("# Please do not edit this file."); base.WriteLine(string.Format("# {0} at {1}", DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString())); base.WriteLine("#==============================================================================="); } base.WriteLine(string.Empty); foreach (object header in _headerValues) { if (FlagsHelper.IsFlagSet((int)_headers, (int)header)) { string headerName = this.GetHeaderDescription((InstanceTraceListenerHeaders)header); string headerValue = this.GetHeaderValue((InstanceTraceListenerHeaders)header, frame); string line = this.FormatHeaderLine(flagEntry, headerName, headerValue); base.WriteLine(line); } } base.Write(this.GetFlag(flagEntry) /* + ">" */); }