protected override bool Initialize(Assembly assembly) { Type type = assembly.GetType("System.Net.Logging"); if (type == null) { string failure = "type 'System.Net.Logging' not found in assembly '" + assembly.FullName + "'"; SystemNetLogging.ReportFailure(1, failure); SystemNetLogging.ReportFailure(0, failure); return(false); } this.fieldEnabled = type.GetTypeInfo().GetDeclaredField("s_LoggingEnabled"); if (this.fieldEnabled == null || this.fieldEnabled.IsPublic || !this.fieldEnabled.IsStatic) { string failure2 = "static field 's_LoggingEnabled' not found in type 'System.Net.Logging'"; SystemNetLogging.ReportFailure(1, failure2); SystemNetLogging.ReportFailure(0, failure2); return(false); } SystemTrace.SetFieldValue(this.fieldEnabled, false); PropertyInfo declaredProperty = type.GetTypeInfo().GetDeclaredProperty("On"); if (declaredProperty == null) { string failure3 = "static property 'On' not found in 'System.Net.Logging' type"; SystemNetLogging.ReportFailure(1, failure3); SystemNetLogging.ReportFailure(0, failure3); return(false); } declaredProperty.GetValue(null, null); this.socketsSource = SystemNetLogging.GetTraceSource(1, "s_SocketsTraceSource", type); this.webSource = SystemNetLogging.GetTraceSource(0, "s_WebTraceSource", type); this.httpListenerSource = SystemNetLogging.GetTraceSource(2, "s_HttpListenerTraceSource", type); return(this.webSource != null || this.socketsSource != null || this.httpListenerSource != null); }
protected override void Update() { bool flag = this.httpListenerExtendedErrorListener != null; SystemTrace.SetFieldValue(this.fieldEnabled, flag || this.enabled); SourceLevels sourceLevels = this.enabled ? base.SourceLevels : SourceLevels.Off; this.socketsSource.Switch.Level = sourceLevels; this.webSource.Switch.Level = sourceLevels; this.httpListenerSource.Switch.Level = ((flag && (sourceLevels == SourceLevels.Off || sourceLevels == SourceLevels.Critical)) ? SourceLevels.Error : sourceLevels); base.ConnectListener(this.socketsSource, this.socketsListener, this.enabled); base.ConnectListener(this.webSource, this.webListener, this.enabled); base.ConnectListener(this.httpListenerSource, this.httpListenerListener, this.enabled); if (flag) { base.ConnectListener(this.httpListenerSource, this.httpListenerExtendedErrorListener, true); } }