public FilterOnCategoryBuilder(ILoggingConfigurationOptions context, string logFilterName)
                :base(context)
            {
                categoryFilter = new CategoryFilterData()
                {
                    Name = logFilterName
                };

                LoggingSettings.LogFilters.Add(categoryFilter);
            }
Пример #2
0
 /// <summary>
 /// <para>Adds an <see cref="CategoryFilterData"/> into the collection.</para>
 /// </summary>
 /// <param name="exceptionTypeData">
 /// <para>The <see cref="CategoryFilterData"/> to add. The value can not be a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </param>
 /// <remarks>
 /// <para>If a reference already exists in the collection by <seealso cref="CategoryFilterData.Name"/>, it will be replaced with the new reference.</para>
 /// </remarks>
 /// <exception cref="ArgumentNullException">
 /// <para><paramref name="exceptionTypeData"/> is a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </exception>
 /// <exception cref="InvalidOperationException">
 /// <para><seealso cref="CategoryFilterData.Name"/> is a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </exception>
 public void Add(CategoryFilterData exceptionTypeData)
 {
     if (exceptionTypeData == null)
     {
         throw new ArgumentNullException("configurationSection");
     }
     if (exceptionTypeData.Name == null)
     {
         throw new InvalidOperationException(SR.ExceptionCategoryFilterDataName);
     }
     BaseAdd(exceptionTypeData.Name, exceptionTypeData);
 }
        public void CanCreateCategoryFilterFromEmptyCategoryConfiguration()
        {
            NamedElementCollection<CategoryFilterEntry> categoryEntries = new NamedElementCollection<CategoryFilterEntry>();
            CategoryFilterData filterData = new CategoryFilterData("category", categoryEntries, CategoryFilterMode.DenyAllExceptAllowed);

            MockLogObjectsHelper helper = new MockLogObjectsHelper();
            ILogFilter filter = LogFilterCustomFactory.Instance.Create(context, filterData, helper.configurationSource, reflectionCache); ;

            Assert.IsNotNull(filter);
            Assert.AreEqual(filter.GetType(), typeof(CategoryFilter));
            Assert.AreEqual(0, ((CategoryFilter)filter).CategoryFilters.Count);
            Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, ((CategoryFilter)filter).CategoryFilterMode);
        }
        public void CanCreateCategoryFilterFromEmptyCategoryConfiguration()
        {
            var categoryEntries = new NamedElementCollection<CategoryFilterEntry>();
            var filterData = new CategoryFilterData("category", categoryEntries, CategoryFilterMode.DenyAllExceptAllowed);

            var helper = new MockLogObjectsHelper();
            helper.loggingSettings.LogFilters.Add(filterData);

            ILogFilter filter = GetFilter(filterData.Name, helper.configurationSource);

            Assert.IsNotNull(filter);
            Assert.AreEqual(filter.GetType(), typeof(CategoryFilter));
            Assert.AreEqual(0, ((CategoryFilter)filter).CategoryFilters.Count);
            Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, ((CategoryFilter)filter).CategoryFilterMode);
        }
Пример #5
0
        public ILogFilter Assemble(IBuilderContext context, LogFilterData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache)
        {
            CategoryFilterData   castedObjectConfiguration = (CategoryFilterData)objectConfiguration;
            ICollection <string> categoryFilters           = new List <string>();

            foreach (CategoryFilterEntry entry in castedObjectConfiguration.CategoryFilters)
            {
                categoryFilters.Add(entry.Name);
            }
            ILogFilter createdObject
                = new CategoryFilter(
                      castedObjectConfiguration.Name,
                      categoryFilters,
                      castedObjectConfiguration.CategoryFilterMode);

            return(createdObject);
        }
		public void CanCreatePoliciesForCategoryFilter()
		{
			CategoryFilterData data = new CategoryFilterData();
			data.Type = typeof(CategoryFilter);
			data.Name = "name";
			data.CategoryFilterMode = CategoryFilterMode.DenyAllExceptAllowed;
			data.CategoryFilters.Add(new CategoryFilterEntry("foo"));
			data.CategoryFilters.Add(new CategoryFilterEntry("bar"));
			loggingSettings.LogFilters.Add(data);

            using(var container = CreateContainer())
            {
                CategoryFilter createdObject = (CategoryFilter)container.Resolve<ILogFilter>("name");

                Assert.IsNotNull(createdObject);
                Assert.AreEqual(CategoryFilterMode.DenyAllExceptAllowed, createdObject.CategoryFilterMode);
                Assert.AreEqual(2, createdObject.CategoryFilters.Count);
                Assert.IsTrue(createdObject.CategoryFilters.Contains("foo"));
                Assert.IsTrue(createdObject.CategoryFilters.Contains("bar"));
            }
		}
Пример #7
0
        public void SetUp()
        {
            settings = (LoggingSettings)Context.GetConfiguration(LoggingSettings.SectionName);
            originalMinPriority = settings.MinimumPriority;
            SetDenyAllExceptAllowedMode();

            CategoryFilterData cat = new CategoryFilterData();
            cat.Name = "foo";
            settings.CategoryFilters.Add(cat);

            filter = new LogFilter(new LoggingConfigurationView(Context));
            log = CommonUtil.GetDefaultLogEntry();
        }
        public void CanCreateCategoryFilterFromNonEmptyCategoryConfiguration()
        {
            NamedElementCollection<CategoryFilterEntry> categoryEntries = new NamedElementCollection<CategoryFilterEntry>();
            categoryEntries.Add(new CategoryFilterEntry("category1"));
            categoryEntries.Add(new CategoryFilterEntry("category2"));
            categoryEntries.Add(new CategoryFilterEntry("category3"));
            CategoryFilterData filterData = new CategoryFilterData("category", categoryEntries, CategoryFilterMode.AllowAllExceptDenied);

            MockLogObjectsHelper helper = new MockLogObjectsHelper();
            helper.loggingSettings.LogFilters.Add(filterData);

            ILogFilter filter = GetFilter(filterData.Name, helper.configurationSource);

            Assert.IsNotNull(filter);
            Assert.AreEqual(filter.GetType(), typeof(CategoryFilter));
            Assert.AreEqual(3, ((CategoryFilter)filter).CategoryFilters.Count);
            Assert.IsTrue(((CategoryFilter)filter).CategoryFilters.Contains("category1"));
            Assert.IsTrue(((CategoryFilter)filter).CategoryFilters.Contains("category2"));
            Assert.IsTrue(((CategoryFilter)filter).CategoryFilters.Contains("category3"));
            Assert.IsFalse(((CategoryFilter)filter).CategoryFilters.Contains("category4"));
            Assert.AreEqual(CategoryFilterMode.AllowAllExceptDenied, ((CategoryFilter)filter).CategoryFilterMode);
        }
 /// <summary>
 /// <para>Adds an <see cref="CategoryFilterData"/> into the collection.</para>
 /// </summary>
 /// <param name="exceptionTypeData">
 /// <para>The <see cref="CategoryFilterData"/> to add. The value can not be a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </param>
 /// <remarks>
 /// <para>If a reference already exists in the collection by <seealso cref="CategoryFilterData.Name"/>, it will be replaced with the new reference.</para>
 /// </remarks>
 /// <exception cref="ArgumentNullException">
 /// <para><paramref name="exceptionTypeData"/> is a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </exception>
 /// <exception cref="InvalidOperationException">
 /// <para><seealso cref="CategoryFilterData.Name"/> is a <see langword="null"/> reference (Nothing in Visual Basic).</para>
 /// </exception>
 public void Add(CategoryFilterData exceptionTypeData)
 {
     if (exceptionTypeData == null)
     {
         throw new ArgumentNullException("configurationSection");
     }
     if (exceptionTypeData.Name == null)
     {
         throw new InvalidOperationException(SR.ExceptionCategoryFilterDataName);
     }
     BaseAdd(exceptionTypeData.Name, exceptionTypeData);
 }
        public void CanCreateLogWriter()
        {
            CategoryFilterData data = new CategoryFilterData();
            data.Type = typeof(CategoryFilter);
            data.Name = "name";
            data.CategoryFilterMode = CategoryFilterMode.DenyAllExceptAllowed;
            data.CategoryFilters.Add(new CategoryFilterEntry("foo"));
            data.CategoryFilters.Add(new CategoryFilterEntry("bar"));
            loggingSettings.LogFilters.Add(data);

            loggingSettings.TraceListeners.Add(new MockTraceListenerData("mock1"));
            loggingSettings.TraceListeners.Add(new MockTraceListenerData("mock2"));

            TraceSourceData sourceData = new TraceSourceData("name", SourceLevels.All);
            sourceData.TraceListeners.Add(new TraceListenerReferenceData("mock1"));
            sourceData.TraceListeners.Add(new TraceListenerReferenceData("mock2"));
            loggingSettings.TraceSources.Add(sourceData);

            loggingSettings.SpecialTraceSources = new SpecialTraceSourcesData();
            loggingSettings.SpecialTraceSources.AllEventsTraceSource = new TraceSourceData("all", SourceLevels.All);
            loggingSettings.SpecialTraceSources.NotProcessedTraceSource = new TraceSourceData("not processed", SourceLevels.Warning);
            loggingSettings.SpecialTraceSources.ErrorsTraceSource = new TraceSourceData("errors", SourceLevels.Error);
            loggingSettings.SpecialTraceSources.ErrorsTraceSource.TraceListeners.Add(new TraceListenerReferenceData("mock1"));

            loggingSettings.DefaultCategory = "name";
            loggingSettings.LogWarningWhenNoCategoriesMatch = true;
            loggingSettings.TracingEnabled = false;

            InitializeContainer();

            LogWriter createdObject = container.Resolve<LogWriter>();

            Assert.IsNotNull(createdObject);

            CategoryFilter filter = createdObject.GetFilter<CategoryFilter>();
            Assert.IsNotNull(filter);
            Assert.AreEqual(2, filter.CategoryFilters.Count);
            Assert.IsTrue(filter.CategoryFilters.Contains("foo"));
            Assert.IsTrue(filter.CategoryFilters.Contains("bar"));

            Assert.AreEqual(1, createdObject.TraceSources.Count);
        }