nicko       2004/12/12 18:12:20

  Modified:    src/Repository/Hierarchy DefaultLoggerFactory.cs
                        Hierarchy.cs ILoggerFactory.cs
  Log:
  Updated Hierarchy to use the ILoggerFactory to create the Root logger
  
  Revision  Changes    Path
  1.5       +8 -0      
logging-log4net/src/Repository/Hierarchy/DefaultLoggerFactory.cs
  
  Index: DefaultLoggerFactory.cs
  ===================================================================
  RCS file: 
/home/cvs/logging-log4net/src/Repository/Hierarchy/DefaultLoggerFactory.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultLoggerFactory.cs   13 Dec 2004 01:53:58 -0000      1.4
  +++ DefaultLoggerFactory.cs   13 Dec 2004 02:12:20 -0000      1.5
  @@ -68,9 +68,17 @@
                /// Called by the <see cref="Hierarchy"/> to create
                /// new named <see cref="Logger"/> instances.
                /// </para>
  +             /// <para>
  +             /// If the <paramref name="name"/> is <c>null</c> then the root 
logger
  +             /// must be returned.
  +             /// </para>
                /// </remarks>
                public Logger CreateLogger(string name) 
                {
  +                     if (name == null)
  +                     {
  +                             return new RootLogger(Level.Debug);
  +                     }
                        return new LoggerImpl(name);
                }
   
  
  
  
  1.11      +20 -5     logging-log4net/src/Repository/Hierarchy/Hierarchy.cs
  
  Index: Hierarchy.cs
  ===================================================================
  RCS file: /home/cvs/logging-log4net/src/Repository/Hierarchy/Hierarchy.cs,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Hierarchy.cs      13 Dec 2004 01:53:58 -0000      1.10
  +++ Hierarchy.cs      13 Dec 2004 02:12:20 -0000      1.11
  @@ -199,9 +199,6 @@
                        m_defaultFactory = loggerFactory;
   
                        m_ht = System.Collections.Hashtable.Synchronized(new 
System.Collections.Hashtable());
  -                     m_root = new RootLogger(Level.Debug);
  -
  -                     m_root.Hierarchy = this;
                }
   
                #endregion Public Instance Constructors
  @@ -233,7 +230,25 @@
                /// </remarks>
                public Logger Root
                {
  -                     get { return m_root; }
  +                     get 
  +                     { 
  +                             if (m_root == null)
  +                             {
  +                                     lock(this)
  +                                     {
  +                                             if (m_root == null)
  +                                             {
  +                                                     // Create the root 
logger
  +                                                     Logger root = 
m_defaultFactory.CreateLogger(null);
  +                                                     root.Hierarchy = this;
  +
  +                                                     // Store root
  +                                                     m_root = root;
  +                                             }
  +                                     }
  +                             }
  +                             return m_root; 
  +                     }
                }
   
                /// <summary>
  @@ -808,7 +823,7 @@
                        // If we could not find any existing parents, then link 
with root.
                        if (!parentFound) 
                        {
  -                             log.Parent = m_root;
  +                             log.Parent = this.Root;
                        }
                }
   
  
  
  
  1.5       +4 -0      
logging-log4net/src/Repository/Hierarchy/ILoggerFactory.cs
  
  Index: ILoggerFactory.cs
  ===================================================================
  RCS file: 
/home/cvs/logging-log4net/src/Repository/Hierarchy/ILoggerFactory.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ILoggerFactory.cs 13 Dec 2004 01:53:58 -0000      1.4
  +++ ILoggerFactory.cs 13 Dec 2004 02:12:20 -0000      1.5
  @@ -56,6 +56,10 @@
                /// Called by the <see cref="Hierarchy"/> to create
                /// new named <see cref="Logger"/> instances.
                /// </para>
  +             /// <para>
  +             /// If the <paramref name="name"/> is <c>null</c> then the root 
logger
  +             /// must be returned.
  +             /// </para>
                /// </remarks>
                Logger CreateLogger(string name);
        }
  
  
  

Reply via email to