예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }