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 ni...@apache.org on 2007/03/06 21:00:39 UTC

svn commit: r515275 - in /logging/log4net/trunk/src/Repository/Hierarchy: DefaultLoggerFactory.cs Hierarchy.cs ILoggerFactory.cs

Author: nicko
Date: Tue Mar  6 12:00:38 2007
New Revision: 515275

URL: http://svn.apache.org/viewvc?view=rev&rev=515275
Log:
Committed patch from LOG4NET-97: Make Hierarchy's ILoggerFactory aware of the repository's LevelMap.
This is a breaking change to ILoggerFactory, but is required to ensure that the factory is aware of the repository and therefore its LevelMap

Modified:
    logging/log4net/trunk/src/Repository/Hierarchy/DefaultLoggerFactory.cs
    logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
    logging/log4net/trunk/src/Repository/Hierarchy/ILoggerFactory.cs

Modified: logging/log4net/trunk/src/Repository/Hierarchy/DefaultLoggerFactory.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Repository/Hierarchy/DefaultLoggerFactory.cs?view=diff&rev=515275&r1=515274&r2=515275
==============================================================================
--- logging/log4net/trunk/src/Repository/Hierarchy/DefaultLoggerFactory.cs (original)
+++ logging/log4net/trunk/src/Repository/Hierarchy/DefaultLoggerFactory.cs Tue Mar  6 12:00:38 2007
@@ -17,8 +17,6 @@
 //
 #endregion
 
-using System;
-
 using log4net.Core;
 
 namespace log4net.Repository.Hierarchy
@@ -58,6 +56,7 @@
 		/// <summary>
 		/// Create a new <see cref="Logger" /> instance
 		/// </summary>
+		/// <param name="repository">The <see cref="ILoggerRepository" /> that will own the <see cref="Logger" />.</param>
 		/// <param name="name">The name of the <see cref="Logger" />.</param>
 		/// <returns>The <see cref="Logger" /> instance for the specified name.</returns>
 		/// <remarks>
@@ -74,11 +73,11 @@
 		/// must be returned.
 		/// </para>
 		/// </remarks>
-		public Logger CreateLogger(string name) 
+		public Logger CreateLogger(ILoggerRepository repository, string name) 
 		{
 			if (name == null)
 			{
-				return new RootLogger(Level.Debug);
+				return new RootLogger(repository.LevelMap.LookupWithDefault(Level.Debug));
 			}
 			return new LoggerImpl(name);
 		}

Modified: logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs?view=diff&rev=515275&r1=515274&r2=515275
==============================================================================
--- logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs (original)
+++ logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs Tue Mar  6 12:00:38 2007
@@ -19,7 +19,6 @@
 
 using System;
 
-using log4net.ObjectRenderer;
 using log4net.Core;
 using log4net.Util;
 
@@ -240,7 +239,7 @@
 						if (m_root == null)
 						{
 							// Create the root logger
-							Logger root = m_defaultFactory.CreateLogger(null);
+							Logger root = m_defaultFactory.CreateLogger(this, null);
 							root.Hierarchy = this;
 
 							// Store root
@@ -426,8 +425,8 @@
 		/// </remarks>
 		override public void ResetConfiguration() 
 		{
-			Root.Level = Level.Debug;
-			Threshold = Level.All;
+			Root.Level = LevelMap.LookupWithDefault(Level.Debug);
+			Threshold = LevelMap.LookupWithDefault(Level.All);
 	
 			// the synchronization is needed to prevent hashtable surprises
 			lock(m_ht) 
@@ -487,7 +486,7 @@
 		/// The list returned is unordered but does not contain duplicates.
 		/// </para>
 		/// </remarks>
-		override public log4net.Appender.IAppender[] GetAppenders()
+		override public Appender.IAppender[] GetAppenders()
 		{
 			System.Collections.ArrayList appenderList = new System.Collections.ArrayList();
 
@@ -498,7 +497,7 @@
 				CollectAppenders(appenderList, logger);
 			}
 
-			return (log4net.Appender.IAppender[])appenderList.ToArray(typeof(log4net.Appender.IAppender));
+			return (Appender.IAppender[])appenderList.ToArray(typeof(Appender.IAppender));
 		}
 
 		#endregion Override Implementation of LoggerRepositorySkeleton
@@ -509,7 +508,7 @@
 		/// </summary>
 		/// <param name="appenderList"></param>
 		/// <param name="appender"></param>
-		private static void CollectAppender(System.Collections.ArrayList appenderList, log4net.Appender.IAppender appender)
+		private static void CollectAppender(System.Collections.ArrayList appenderList, Appender.IAppender appender)
 		{
 			if (!appenderList.Contains(appender))
 			{
@@ -530,7 +529,7 @@
 		/// <param name="container"></param>
 		private static void CollectAppenders(System.Collections.ArrayList appenderList, IAppenderAttachable container)
 		{
-			foreach(log4net.Appender.IAppender appender in container.Appenders)
+			foreach(Appender.IAppender appender in container.Appenders)
 			{
 				CollectAppender(appenderList, appender);
 			}
@@ -542,7 +541,7 @@
 		/// 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(log4net.Appender.IAppender appender)
+		void IBasicRepositoryConfigurator.Configure(Appender.IAppender appender)
 		{
 			BasicRepositoryConfigure(appender);
 		}
@@ -558,7 +557,7 @@
 		/// on this object, but it is protected and therefore can be called by subclasses.
 		/// </para>
 		/// </remarks>
-		protected void BasicRepositoryConfigure(log4net.Appender.IAppender appender)
+		protected void BasicRepositoryConfigure(Appender.IAppender appender)
 		{
 			Root.AddAppender(appender);
 
@@ -697,14 +696,15 @@
 			// Synchronize to prevent write conflicts. Read conflicts (in
 			// GetEffectiveLevel() method) are possible only if variable
 			// assignments are non-atomic.
-			Logger logger;
-	
+
 			lock(m_ht) 
 			{
+				Logger logger = null;
+
 				Object node = m_ht[key];
 				if (node == null) 
 				{
-					logger = factory.CreateLogger(name);
+					logger = factory.CreateLogger(this, name);
 					logger.Hierarchy = this;
 					m_ht[key] = logger;	  
 					UpdateParents(logger);
@@ -721,7 +721,7 @@
 				ProvisionNode nodeProvisionNode = node as ProvisionNode;
 				if (nodeProvisionNode != null) 
 				{
-					logger = factory.CreateLogger(name);
+					logger = factory.CreateLogger(this, name);
 					logger.Hierarchy = this; 
 					m_ht[key] = logger;
 					UpdateChildren(nodeProvisionNode, logger);
@@ -868,7 +868,7 @@
 		/// c's parent field to log.
 		/// </para>
 		/// </remarks>
-		private void UpdateChildren(ProvisionNode pn, Logger log) 
+		private static void UpdateChildren(ProvisionNode pn, Logger log) 
 		{
 			for(int i = 0; i < pn.Count; i++) 
 			{

Modified: logging/log4net/trunk/src/Repository/Hierarchy/ILoggerFactory.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Repository/Hierarchy/ILoggerFactory.cs?view=diff&rev=515275&r1=515274&r2=515275
==============================================================================
--- logging/log4net/trunk/src/Repository/Hierarchy/ILoggerFactory.cs (original)
+++ logging/log4net/trunk/src/Repository/Hierarchy/ILoggerFactory.cs Tue Mar  6 12:00:38 2007
@@ -17,10 +17,6 @@
 //
 #endregion
 
-using System;
-
-using log4net;
-
 namespace log4net.Repository.Hierarchy
 {
 	/// <summary>
@@ -46,6 +42,7 @@
 		/// <summary>
 		/// Create a new <see cref="Logger" /> instance
 		/// </summary>
+		/// <param name="repository">The <see cref="ILoggerRepository" /> that will own the <see cref="Logger" />.</param>
 		/// <param name="name">The name of the <see cref="Logger" />.</param>
 		/// <returns>The <see cref="Logger" /> instance for the specified name.</returns>
 		/// <remarks>
@@ -62,6 +59,6 @@
 		/// must be returned.
 		/// </para>
 		/// </remarks>
-		Logger CreateLogger(string name);
+		Logger CreateLogger(ILoggerRepository repository, string name);
 	}
 }