internal TraceSourceInfo(string name, SourceLevels levels, TraceImplSettings settings) { this.name = name; this.levels = levels; this.listeners = new TraceListenerCollection(false); this.listeners.Add(new DefaultTraceListener(), settings); }
internal TraceSourceInfo (string name, SourceLevels levels, TraceImplSettings settings) { this.name = name; this.levels = levels; this.listeners = new TraceListenerCollection (); this.listeners.Add (new DefaultTraceListener() { IndentSize = settings.IndentSize }); }
internal TraceSourceInfo (string name, SourceLevels levels, TraceImplSettings settings) { this.name = name; this.levels = levels; this.listeners = new TraceListenerCollection (false); this.listeners.Add (new DefaultTraceListener(), settings); }
internal TraceSourceInfo(string name, SourceLevels levels, TraceImplSettings settings) { this.name = name; this.levels = levels; this.listeners = new TraceListenerCollection(); this.listeners.Add(new DefaultTraceListener() { IndentSize = settings.IndentSize }); }
private static void InitOnce() { if (initLock != null) { lock (initLock) { if (listeners == null) { TraceImplSettings traceImplSettings = new TraceImplSettings(); autoFlush = traceImplSettings.AutoFlush; indentLevel = traceImplSettings.IndentLevel; indentSize = traceImplSettings.IndentSize; listeners = traceImplSettings.Listeners; } } initLock = null; } }
private static void InitOnce() { if (TraceImpl.initLock != null) { object obj = TraceImpl.initLock; lock (obj) { if (TraceImpl.listeners == null) { TraceImplSettings traceImplSettings = new TraceImplSettings(); TraceImpl.autoFlush = traceImplSettings.AutoFlush; TraceImpl.indentLevel = traceImplSettings.IndentLevel; TraceImpl.indentSize = traceImplSettings.IndentSize; TraceImpl.listeners = traceImplSettings.Listeners; } } TraceImpl.initLock = null; } }
// Initialize the world. // // This logically belongs in the static constructor (as it only needs // to be done once), except for one thing: if the .config file has a // syntax error, .NET throws a ConfigurationException. If we read the // .config file in the static ctor, we throw a ConfigurationException // from the static ctor, which results in a TypeLoadException. Oops. // Reading the .config file here will allow the static ctor to // complete successfully, allowing us to throw a normal // ConfigurationException should the .config file contain an error. // // There are also some ordering issues. // // DiagnosticsConfigurationHandler doesn't store values within TraceImpl, // but instead stores values it reads from the .config file within a // TraceImplSettings object (accessible via the TraceImplSettings.Key key // in the IDictionary returned). private static void InitOnce() { if (initLock != null) { lock (initLock) { if (listeners == null) { IDictionary d = DiagnosticsConfiguration.Settings; TraceImplSettings s = (TraceImplSettings)d [TraceImplSettings.Key]; d.Remove(TraceImplSettings.Key); autoFlush = s.AutoFlush; indentLevel = s.IndentLevel; indentSize = s.IndentSize; listeners = s.Listeners; } } initLock = null; } }
public virtual object Create (object parent, object configContext, XmlNode section) { IDictionary d; if (parent == null) d = new Hashtable (CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); else d = (IDictionary) ((ICloneable)parent).Clone(); if (d.Contains (TraceImplSettings.Key)) configValues = (TraceImplSettings) d [TraceImplSettings.Key]; else d.Add (TraceImplSettings.Key, configValues = new TraceImplSettings ()); #if NET_2_0 // process <sharedListeners> first foreach (XmlNode child in section.ChildNodes) { switch (child.NodeType) { case XmlNodeType.Element: if (child.LocalName != "sharedListeners") continue; AddTraceListeners (d, child, GetSharedListeners (d)); break; } } #endif foreach (XmlNode child in section.ChildNodes) { XmlNodeType type = child.NodeType; switch (type) { /* ignore */ case XmlNodeType.Whitespace: case XmlNodeType.Comment: continue; case XmlNodeType.Element: #if NET_2_0 if (child.LocalName == "sharedListeners") continue; #endif ElementHandler eh = (ElementHandler) elementHandlers [child.Name]; if (eh != null) eh (d, child); else ThrowUnrecognizedElement (child); break; default: ThrowUnrecognizedElement (child); break; } } return d; }
internal void Add(TraceListener listener, TraceImplSettings settings) { listener.IndentLevel = settings.IndentLevel; listener.IndentSize = settings.IndentSize; listeners.Add(listener); }
internal void Add (TraceListener listener, TraceImplSettings settings) { // listener.IndentLevel = settings.IndentLevel; listener.IndentSize = settings.IndentSize; listeners.Add (listener); }
public virtual object Create(object parent, object configContext, XmlNode section) { IDictionary d; if (parent == null) { d = new Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default); } else { d = (IDictionary)((ICloneable)parent).Clone(); } if (d.Contains(TraceImplSettings.Key)) { configValues = (TraceImplSettings)d [TraceImplSettings.Key]; } else { d.Add(TraceImplSettings.Key, configValues = new TraceImplSettings()); } // process <sharedListeners> first foreach (XmlNode child in section.ChildNodes) { switch (child.NodeType) { case XmlNodeType.Element: if (child.LocalName != "sharedListeners") { continue; } AddTraceListeners(d, child, GetSharedListeners(d)); break; } } foreach (XmlNode child in section.ChildNodes) { XmlNodeType type = child.NodeType; switch (type) { /* ignore */ case XmlNodeType.Whitespace: case XmlNodeType.Comment: continue; case XmlNodeType.Element: if (child.LocalName == "sharedListeners") { continue; } ElementHandler eh = (ElementHandler)elementHandlers [child.Name]; if (eh != null) { eh(d, child); } else { ThrowUnrecognizedElement(child); } break; default: ThrowUnrecognizedElement(child); break; } } return(d); }