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