List Info

Thread: svn commit: r653963 - in /logging/log4net/trunk: src/Config/BasicConfigurator.cs src/Repository/Hier




svn commit: r653963 - in /logging/log4net/trunk: src/Config/BasicConfigurator.cs src/Repository/Hier
country flaguser name
United States
2008-05-06 20:37:21
Author: rgrabowski
Date: Tue May  6 18:37:20 2008
New Revision: 653963

URL: 
http://svn.apache.org/viewvc?rev=653963&view=rev
Log:
Fix for LOG4NET-153. Add overload to
IBasicRepositoryConfigurator.Configure that accepts an array
of IAppender objects instead of just a single IAppender.

Modified:
    logging/log4net/trunk/src/Config/BasicConfigurator.cs
   
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
   
logging/log4net/trunk/src/Repository/IBasicRepositoryConfigu
rator.cs
    logging/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs

Modified:
logging/log4net/trunk/src/Config/BasicConfigurator.cs
URL: http://svn.apache.org/viewvc/logging/
log4net/trunk/src/Config/BasicConfigurator.cs?rev=653963&
;r1=653962&r2=653963&view=diff
============================================================
==================
--- logging/log4net/trunk/src/Config/BasicConfigurator.cs
(original)
+++ logging/log4net/trunk/src/Config/BasicConfigurator.cs
Tue May  6 18:37:20 2008
 -110,19
+110,33 
 		/// </remarks>
 		static public ICollection Configure(IAppender appender) 
 		{
+            return Configure(new IAppender[] );
+		}
+
+        /// <summary>
+        /// Initializes the log4net system using the
specified appenders.
+        /// </summary>
+        /// <param name="appenders">The
appenders to use to log all logging events.</param>
+        /// <remarks>
+        /// <para>
+        /// Initializes the log4net system using the
specified appenders.
+        /// </para>
+        /// </remarks>
+        static public ICollection Configure(params
IAppender[] appenders)
+        {
             ArrayList configurationMessages = new
ArrayList();
 
             ILoggerRepository repository =
LogManager.GetRepository(Assembly.GetCallingAssembly());
 
             using (new
LogLog.LogReceivedAdapter(configurationMessages))
             {
-                InternalConfigure(repository, appender);
+                InternalConfigure(repository, appenders);
             }
 
             repository.ConfigurationMessages =
configurationMessages;
 
             return configurationMessages;
-		}
+        }
 
 		/// <summary>
 		/// Initializes the <see
cref="ILoggerRepository"/> with a default
configuration.
 -173,11
+187,26 
         /// </remarks>
         static public ICollection
Configure(ILoggerRepository repository, IAppender appender)
         {
+            return Configure(repository, new IAppender[] );
+        }
+
+        /// <summary>
+        /// Initializes the <see
cref="ILoggerRepository"/> using the specified
appenders.
+        /// </summary>
+        /// <param name="repository">The
repository to configure.</param>
+        /// <param name="appenders">The
appenders to use to log all logging events.</param>
+        /// <remarks>
+        /// <para>
+        /// Initializes the <see
cref="ILoggerRepository"/> using the specified
appender.
+        /// </para>
+        /// </remarks>
+        static public ICollection
Configure(ILoggerRepository repository, params IAppender[]
appenders)
+        {
             ArrayList configurationMessages = new
ArrayList();
 
             using (new
LogLog.LogReceivedAdapter(configurationMessages))
             {
-                InternalConfigure(repository, appender);
+                InternalConfigure(repository, appenders);
             }
 
             repository.ConfigurationMessages =
configurationMessages;
 -185,12
+214,12 
             return configurationMessages;
         }
 	    
-		static private void InternalConfigure(ILoggerRepository
repository, IAppender appender) 
+		static private void InternalConfigure(ILoggerRepository
repository, params IAppender[] appenders) 
 		{
             IBasicRepositoryConfigurator
configurableRepository = repository as
IBasicRepositoryConfigurator;
             if (configurableRepository != null)
             {
-               
configurableRepository.Configure(appender);
+               
configurableRepository.Configure(appenders);
             }
             else
             {

Modified:
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
URL: http://svn.apache.org/viewvc/lo
gging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs?re
v=653963&r1=653962&r2=653963&view=diff
============================================================
==================
---
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
(original)
+++
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
Tue May  6 18:37:20 2008
 -19,7
+19,9 
 
 using System;
 using System.Collections;
+using log4net.Appender;
 using log4net.Core;
+using log4net.Repository;
 using log4net.Util;
 
 namespace log4net.Repository.Hierarchy
 -545,29
+547,41 
 		/// Initialize the log4net system using the specified
appender
 		/// </summary>
 		/// <param name="appender">the appender
to use to log all logging events</param>
-		void
IBasicRepositoryConfigurator.Configure(Appender.IAppender
appender)
+		void IBasicRepositoryConfigurator.Configure(IAppender
appender)
 		{
 			BasicRepositoryConfigure(appender);
 		}
 
+        /// <summary>
+        /// Initialize the log4net system using the
specified appenders
+        /// </summary>
+        /// <param name="appenders">the
appenders to use to log all logging events</param>
+        void IBasicRepositoryConfigurator.Configure(params
IAppender[] appenders)
+        {
+            BasicRepositoryConfigure(appenders);
+        }
+
 		/// <summary>
-		/// Initialize the log4net system using the specified
appender
+		/// Initialize the log4net system using the specified
appenders
 		/// </summary>
-		/// <param name="appender">the appender
to use to log all logging events</param>
+		/// <param name="appenders">the appenders
to use to log all logging events</param>
 		/// <remarks>
 		/// <para>
 		/// This method provides the same functionality as the 
-		/// <see
cref="IBasicRepositoryConfigurator.Configure"/>
method implemented
+		/// <see
cref="IBasicRepositoryConfigurator.Configure(IAppender)
"/> method implemented
 		/// on this object, but it is protected and therefore can
be called by subclasses.
 		/// </para>
 		/// </remarks>
-		protected void
BasicRepositoryConfigure(Appender.IAppender appender)
+		protected void BasicRepositoryConfigure(params
IAppender[] appenders)
 		{
             ArrayList configurationMessages = new
ArrayList();
 
             using (new
LogLog.LogReceivedAdapter(configurationMessages))
             {
-                Root.AddAppender(appender);
+                foreach (IAppender appender in appenders)
+                {
+                    Root.AddAppender(appender);
+                }
             }
 
 		    Configured = true;
 -598,7
+612,7 
 		/// <remarks>
 		/// <para>
 		/// This method provides the same functionality as the 
-		/// <see
cref="IBasicRepositoryConfigurator.Configure"/>
method implemented
+		/// <see
cref="IBasicRepositoryConfigurator.Configure(IAppender)
"/> method implemented
 		/// on this object, but it is protected and therefore can
be called by subclasses.
 		/// </para>
 		/// </remarks>

Modified:
logging/log4net/trunk/src/Repository/IBasicRepositoryConfigu
rator.cs
URL: http://svn.apache.org/
viewvc/logging/log4net/trunk/src/Repository/IBasicRepository
Configurator.cs?rev=653963&r1=653962&r2=653963&v
iew=diff
============================================================
==================
---
logging/log4net/trunk/src/Repository/IBasicRepositoryConfigu
rator.cs (original)
+++
logging/log4net/trunk/src/Repository/IBasicRepositoryConfigu
rator.cs Tue May  6 18:37:20 2008
 -17,10
+17,6 
 //
 #endregion
 
-using System;
-using System.Collections;
-using log4net.Util;
-
 namespace log4net.Repository
 {
 	/// <summary>
 -50,6
+46,18 
 		/// specified appender.
 		/// </para>
 		/// </remarks>
-        void Configure(log4net.Appender.IAppender
appender);
+        void Configure(Appender.IAppender appender);
+
+        /// <summary>
+        /// Initialize the repository using the specified
appenders
+        /// </summary>
+        /// <param name="appenders">the
appenders to use to log all logging events</param>
+        /// <remarks>
+        /// <para>
+        /// Configure the repository to route all logging
events to the
+        /// specified appenders.
+        /// </para>
+        /// </remarks>
+        void Configure(params Appender.IAppender[]
appenders);
 	}
 }

Modified:
logging/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs
URL: http://svn.apache.org/viewvc/logging
/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs?rev=653963&a
mp;r1=653962&r2=653963&view=diff
============================================================
==================
--- logging/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs
(original)
+++ logging/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs
Tue May  6 18:37:20 2008
 -1,7
+1,10 
 using System;
 using System.Xml;
 using log4net.Config;
+using log4net.Core;
 using log4net.Repository;
+using log4net.Repository.Hierarchy;
+using log4net.Tests.Appender;
 using NUnit.Framework;
 
 namespace log4net.Tests.Hierarchy
 -35,5
+38,39 
             Assert.AreEqual("4",
rep.Properties["two-plus-two"]);
            
Assert.IsNull(rep.Properties["one-plus-one"]);
         }
+
+        [Test]
+        public void AddingMultipleAppenders()
+        {
+            CountingAppender alpha = new
CountingAppender();
+            CountingAppender beta = new
CountingAppender();
+
+            Repository.Hierarchy.Hierarchy hierarchy = 
+               
(Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
+            hierarchy.Root.AddAppender(alpha);
+            hierarchy.Root.AddAppender(beta);
+            hierarchy.Configured = true;
+
+            ILog log = LogManager.GetLogger(GetType());
+            log.Debug("Hello World");
+
+            Assert.AreEqual(1, alpha.Counter);
+            Assert.AreEqual(1, beta.Counter);
+        }
+
+        [Test]
+        public void AddingMultipleAppenders2()
+        {
+            CountingAppender alpha = new
CountingAppender();
+            CountingAppender beta = new
CountingAppender();
+            
+            BasicConfigurator.Configure(alpha, beta);
+
+            ILog log = LogManager.GetLogger(GetType());
+            log.Debug("Hello World");
+
+            Assert.AreEqual(1, alpha.Counter);
+            Assert.AreEqual(1, beta.Counter);
+        }
     }
 }



[1]

about | contact  Other archives ( Real Estate discussion Medical topics )