private void BuildSpecialTraceSources(TraceListenerCollectionNode listeners)
        {
            SpecialTraceSourcesNodeBuilder builder
                = new SpecialTraceSourcesNodeBuilder(ServiceProvider, settings.SpecialTraceSources, listeners);

            node.AddNode(builder.Build());
        }
Пример #2
0
        public void OpenAndSaveConfiguration()
        {
            ApplicationNode.Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            ApplicationNode.Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            TraceListenerCollectionNode traceListenersNode = (TraceListenerCollectionNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(TraceListenerCollectionNode));
            AddLoggingDatabaseCommand   cmd = new AddLoggingDatabaseCommand(ServiceProvider);

            cmd.Execute(traceListenersNode);
            LoggingDatabaseNode          dataNode    = (LoggingDatabaseNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(LoggingDatabaseNode));
            ConnectionStringSettingsNode connectNode = (ConnectionStringSettingsNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(ConnectionStringSettingsNode));

            dataNode.DatabaseInstance = connectNode;
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(DatabaseSectionNode)).Count);
            Hierarchy.Save();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Load();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Hierarchy.Open();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
            Assert.AreEqual(1, Hierarchy.FindNodesByType(ApplicationNode, typeof(LoggingDatabaseNode)).Count);
            dataNode = (LoggingDatabaseNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(LoggingDatabaseNode));
            Assert.AreEqual(dataNode.DatabaseInstance.Name, connectNode.Name);
            DatabaseSectionNode databaseSectionNode = (DatabaseSectionNode)Hierarchy.FindNodeByType(ApplicationNode, typeof(DatabaseSectionNode));

            databaseSectionNode.Remove();
            dataNode.Remove();
            Hierarchy.Save();
            Assert.AreEqual(0, ErrorLogService.ConfigurationErrorCount);
        }
        private void BuildTraceListeners(FormatterCollectionNode formatters)
        {
            TraceListenerCollectionNodeBuilder builder   = new TraceListenerCollectionNodeBuilder(ServiceProvider, settings.TraceListeners, formatters);
            TraceListenerCollectionNode        listeners = builder.Build();

            BuildCategoryTraceSources(listeners);
            BuildSpecialTraceSources(listeners);
            node.AddNode(listeners);
        }
Пример #4
0
        /// <summary>
        /// Adds the <see cref="LoggingSettingsNode"/> and adds the default nodes.
        /// </summary>
        /// <param name="node">The <see cref="LoggingSettingsNode"/> added.</param>
        protected override void ExecuteCore(ConfigurationNode node)
        {
            base.ExecuteCore(node);
            LoggingSettingsNode loggingNode = ChildNode as LoggingSettingsNode;

            if (loggingNode == null)
            {
                return;
            }

            TextFormatterNode defaultTextFormatterNode = new TextFormatterNode();
            FormattedEventLogTraceListenerNode defaultTraceListenerNode = new FormattedEventLogTraceListenerNode();
            CategoryTraceSourceNode            generalCategoryNode      = new CategoryTraceSourceNode(new TraceSourceData(Resources.TraceSourceCategoryGeneral, SourceLevels.All));

            loggingNode.AddNode(new LogFilterCollectionNode());

            CategoryTraceSourceCollectionNode categoryTraceSourcesNode   = new CategoryTraceSourceCollectionNode();
            TraceListenerReferenceNode        generalCategoryListenerRef = new TraceListenerReferenceNode(new TraceListenerReferenceData(defaultTraceListenerNode.Name));

            categoryTraceSourcesNode.AddNode(generalCategoryNode);
            generalCategoryNode.AddNode(generalCategoryListenerRef);
            generalCategoryListenerRef.ReferencedTraceListener = defaultTraceListenerNode;
            loggingNode.AddNode(categoryTraceSourcesNode);

            SpecialTraceSourcesNode    specialTraceSourcesNode          = new SpecialTraceSourcesNode();
            ErrorsTraceSourceNode      errorsTraceSourcesNode           = new ErrorsTraceSourceNode(new TraceSourceData());
            TraceListenerReferenceNode errorsTraceListenerReferenceNode = new TraceListenerReferenceNode();

            errorsTraceSourcesNode.AddNode(errorsTraceListenerReferenceNode);
            errorsTraceListenerReferenceNode.ReferencedTraceListener = defaultTraceListenerNode;
            specialTraceSourcesNode.AddNode(errorsTraceSourcesNode);
            specialTraceSourcesNode.AddNode(new NotProcessedTraceSourceNode(new TraceSourceData()));
            specialTraceSourcesNode.AddNode(new AllTraceSourceNode(new TraceSourceData()));
            loggingNode.AddNode(specialTraceSourcesNode);

            TraceListenerCollectionNode traceListenerCollectionNode = new TraceListenerCollectionNode();

            traceListenerCollectionNode.AddNode(defaultTraceListenerNode);
            defaultTraceListenerNode.Formatter = defaultTextFormatterNode;
            loggingNode.AddNode(traceListenerCollectionNode);

            FormatterCollectionNode formattersNode = new FormatterCollectionNode();

            formattersNode.AddNode(defaultTextFormatterNode);
            loggingNode.AddNode(formattersNode);


            loggingNode.DefaultCategory = generalCategoryNode;
            loggingNode.LogWarningWhenNoCategoriesMatch = true;
            loggingNode.TracingEnabled = true;

            ServiceHelper.GetUIService(serviceProvider).RefreshPropertyGrid();
        }
Пример #5
0
        private void BuildTraceListeners()
        {
            TraceListenerCollectionNode traceListenerCollectionNode = (TraceListenerCollectionNode)hierarchy.FindNodeByType(loggingSettingsNode, typeof(TraceListenerCollectionNode));

            if (traceListenerCollectionNode != null)
            {
                foreach (TraceListenerNode listenerNode in traceListenerCollectionNode.Nodes)
                {
                    loggingSettings.TraceListeners.Add(listenerNode.TraceListenerData);
                }
            }
        }
Пример #6
0
        public void TraceListenerNameEqualsReferencedTraceListenerName()
        {
            string traceListenerName = "a traceListener";
            TraceListenerReferenceNode  traceListenerReference  = new TraceListenerReferenceNode();
            TraceListenerCollectionNode traceListenerCollection = new TraceListenerCollectionNode();
            TraceListenerNode           aTraceListener          = new WmiTraceListenerNode(new WmiTraceListenerData(traceListenerName));

            ApplicationNode.AddNode(traceListenerReference);
            ApplicationNode.AddNode(traceListenerCollection);
            traceListenerCollection.AddNode(aTraceListener);
            traceListenerReference.ReferencedTraceListener = aTraceListener;
            Assert.AreEqual(traceListenerName, traceListenerReference.Name);
        }
        private void BuildCategoryTraceSources(TraceListenerCollectionNode listeners)
        {
            CategoryTraceSourceCollectionNodeBuilder builder      = new CategoryTraceSourceCollectionNodeBuilder(ServiceProvider, settings.TraceSources, listeners);
            CategoryTraceSourceCollectionNode        traceSources = builder.Build();

            foreach (CategoryTraceSourceNode traceSource in traceSources.Nodes)
            {
                if (traceSource.Name == settings.DefaultCategory)
                {
                    node.DefaultCategory = traceSource;
                }
            }
            node.AddNode(traceSources);
        }
        void BuildTraceListeners()
        {
            TraceListenerCollectionNode traceListenerCollectionNode
                = (TraceListenerCollectionNode)hierarchy.FindNodeByType(loggingSettingsNode, typeof(TraceListenerCollectionNode));

            if (traceListenerCollectionNode != null)
            {
                foreach (TraceListenerNode listenerNode in traceListenerCollectionNode.Nodes)
                {
                    TraceListenerData data = listenerNode.TraceListenerData;
                    data.Filter             = listenerNode.Filter;
                    data.TraceOutputOptions = listenerNode.TraceOutputOptions;
                    loggingSettings.TraceListeners.Add(data);
                }
            }
        }
 public TraceListenerCollectionNode Build()
 {
     node = new TraceListenerCollectionNode();
     listeners.ForEach(new Action <TraceListenerData>(CreateTraceListenerNode));
     return(node);
 }
 public CategoryTraceSourceCollectionNodeBuilder(IServiceProvider serviceProvider, NamedElementCollection <TraceSourceData> traceSources, TraceListenerCollectionNode listeners)
     : base(serviceProvider)
 {
     this.traceSources = traceSources;
     this.listeners    = listeners;
 }
 public SpecialTraceSourcesNodeBuilder(IServiceProvider serviceProvider, SpecialTraceSourcesData data, TraceListenerCollectionNode listeners)
     : base(serviceProvider)
 {
     this.specialTraceSourcesData = data;
     this.listeners = listeners;
 }