You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by rg...@apache.org on 2010/07/27 00:50:21 UTC
svn commit: r979481 - in /logging/log4net/trunk/tests/src: Filter/
Filter/FilterTest.cs log4net.Tests.vs2008.csproj
Author: rgrabowski
Date: Mon Jul 26 22:50:21 2010
New Revision: 979481
URL: http://svn.apache.org/viewvc?rev=979481&view=rev
Log:
Simple example showing that filter properties can be set the same way as appender properties.
Added:
logging/log4net/trunk/tests/src/Filter/ (with props)
logging/log4net/trunk/tests/src/Filter/FilterTest.cs
Modified:
logging/log4net/trunk/tests/src/log4net.Tests.vs2008.csproj
Propchange: logging/log4net/trunk/tests/src/Filter/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Mon Jul 26 22:50:21 2010
@@ -0,0 +1 @@
+(LOG4NET-\d+)
Propchange: logging/log4net/trunk/tests/src/Filter/
------------------------------------------------------------------------------
bugtraq:url = http://issues.apache.org/jira/browse/%BUGID%
Added: logging/log4net/trunk/tests/src/Filter/FilterTest.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/Filter/FilterTest.cs?rev=979481&view=auto
==============================================================================
--- logging/log4net/trunk/tests/src/Filter/FilterTest.cs (added)
+++ logging/log4net/trunk/tests/src/Filter/FilterTest.cs Mon Jul 26 22:50:21 2010
@@ -0,0 +1,90 @@
+#if NET_2_0
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using log4net.Appender;
+using log4net.Config;
+using log4net.Core;
+using log4net.Filter;
+using log4net.Repository;
+using NUnit.Framework;
+
+namespace log4net.Tests.Filter
+{
+ [TestFixture]
+ public class FilterTest
+ {
+ [Test]
+ public void FilterConfigurationTest()
+ {
+ XmlDocument log4netConfig = new XmlDocument();
+ #region Load log4netConfig
+ log4netConfig.LoadXml(@"
+ <log4net>
+ <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net"">
+ <filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests"">
+ <condition>
+ <key value=""ABC"" />
+ <stringToMatch value=""123"" />
+ </condition>
+ <condition>
+ <key value=""DEF"" />
+ <stringToMatch value=""456"" />
+ </condition>
+ </filter>
+ </appender>
+ <root>
+ <level value=""ALL"" />
+ <appender-ref ref=""MemoryAppender"" />
+ </root>
+ </log4net>");
+ #endregion
+
+ ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
+ XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
+
+ IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders();
+ Assert.IsTrue(appenders.Length == 1);
+
+ IAppender appender = Array.Find(appenders, a => a.Name == "MemoryAppender");
+ Assert.IsNotNull(appender);
+
+ MultiplePropertyFilter multiplePropertyFilter =
+ ((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter;
+
+ var conditions = multiplePropertyFilter.GetConditions();
+ Assert.AreEqual(2, conditions.Length);
+ Assert.AreEqual("ABC", conditions[0].Key);
+ Assert.AreEqual("123", conditions[0].StringToMatch);
+ Assert.AreEqual("DEF", conditions[1].Key);
+ Assert.AreEqual("456", conditions[1].StringToMatch);
+ }
+ }
+
+ public class MultiplePropertyFilter : FilterSkeleton
+ {
+ private readonly List<Condition> _conditions = new List<Condition>();
+
+ public override FilterDecision Decide(LoggingEvent loggingEvent)
+ {
+ return FilterDecision.Accept;
+ }
+
+ public Condition[] GetConditions()
+ {
+ return _conditions.ToArray();
+ }
+
+ public void AddCondition(Condition condition)
+ {
+ _conditions.Add(condition);
+ }
+
+ public class Condition
+ {
+ public string Key { get; set; }
+ public string StringToMatch { get; set; }
+ }
+ }
+}
+#endif
Modified: logging/log4net/trunk/tests/src/log4net.Tests.vs2008.csproj
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/log4net.Tests.vs2008.csproj?rev=979481&r1=979480&r2=979481&view=diff
==============================================================================
--- logging/log4net/trunk/tests/src/log4net.Tests.vs2008.csproj (original)
+++ logging/log4net/trunk/tests/src/log4net.Tests.vs2008.csproj Mon Jul 26 22:50:21 2010
@@ -149,6 +149,7 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="LoggerRepository\ConfigurationMessages.cs" />
+ <Compile Include="Filter\FilterTest.cs" />
<Compile Include="Utils.cs">
<SubType>Code</SubType>
</Compile>