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);
+ }
}
}
|