List Info

Thread: svn commit: r611621 - in /logging/log4net/trunk/src: Layout/PatternLayout.cs Repository/Hierarchy/Hi




svn commit: r611621 - in /logging/log4net/trunk/src: Layout/PatternLayout.cs Repository/Hierarchy/Hi
country flaguser name
United States
2008-01-13 12:43:12
Author: rgrabowski
Date: Sun Jan 13 10:43:11 2008
New Revision: 611621

URL: 
http://svn.apache.org/viewvc?rev=611621&view=rev
Log:
Fix for LOG4NET-31. Allow additional properties to be passed
to Converters configured via xml. Moved
Hierarchy.PropertyEntry into its own class. Moved
PatternString.ConverterInfo into its own class. 

Added:
    logging/log4net/trunk/src/Util/ConverterInfo.cs
    logging/log4net/trunk/src/Util/PropertyEntry.cs
Modified:
    logging/log4net/trunk/src/Layout/PatternLayout.cs
   
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
    logging/log4net/trunk/src/Util/PatternConverter.cs
    logging/log4net/trunk/src/Util/PatternParser.cs
    logging/log4net/trunk/src/Util/PatternString.cs
    logging/log4net/trunk/src/log4net.vs2005.csproj

Modified: logging/log4net/trunk/src/Layout/PatternLayout.cs
URL: http://svn.apache.org/viewvc/logging/log4
net/trunk/src/Layout/PatternLayout.cs?rev=611621&r1=6116
20&r2=611621&view=diff
============================================================
==================
--- logging/log4net/trunk/src/Layout/PatternLayout.cs
(original)
+++ logging/log4net/trunk/src/Layout/PatternLayout.cs Sun
Jan 13 10:43:11 2008
 -965,7
+965,10 
 			// Add all the builtin patterns
 			foreach(DictionaryEntry entry in s_globalRulesRegistry)
 			{
-				patternParser.PatternConverters[entry.Key] =
entry.Value;
+                ConverterInfo converterInfo = new
ConverterInfo();
+                converterInfo.Name = (string)entry.Key;
+                converterInfo.Type = (Type)entry.Value;
+                patternParser.PatternConverters[entry.Key]
= converterInfo;
 			}
 			// Add the instance patterns
 			foreach(DictionaryEntry entry in
m_instanceRulesRegistry)
 -1066,7
+1069,13 
 		/// </remarks>
 		public void AddConverter(ConverterInfo converterInfo)
 		{
-			AddConverter(converterInfo.Name, converterInfo.Type);
+            if (converterInfo == null) throw new
ArgumentNullException("converterInfo");
+
+            if
(!typeof(PatternConverter).IsAssignableFrom(converterInfo.Ty
pe))
+            {
+                throw new ArgumentException("The
converter type specified [" + converterInfo.Type +
"] must be a subclass of
log4net.Util.PatternConverter",
"converterInfo");
+            }
+            m_instanceRulesRegistry[converterInfo.Name] =
converterInfo;
 		}
 
 		/// <summary>
 -1087,66
+1096,14 
 		/// </remarks>
 		public void AddConverter(string name, Type type)
 		{
-			if (name == null) throw new
ArgumentNullException("name");
-			if (type == null) throw new
ArgumentNullException("type");
+            if (name == null) throw new
ArgumentNullException("name");
+            if (type == null) throw new
ArgumentNullException("type");
 
-			if (!typeof(PatternConverter).IsAssignableFrom(type))
-			{
-				throw new ArgumentException("The converter type
specified ["+type+"] must be a subclass of
log4net.Util.PatternConverter", "type");
-			}
-			m_instanceRulesRegistry[name] = type;
-		}
+            ConverterInfo converterInfo = new
ConverterInfo();
+            converterInfo.Name = name;
+            converterInfo.Type = type;
 
-		/// <summary>
-		/// Wrapper class used to map converter names to
converter types
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// Pattern converter info class used during
configuration to
-		/// pass to the <see
cref="PatternLayout.AddConverter(ConverterInfo)"/&
gt;
-		/// method.
-		/// </para>
-		/// </remarks>
-		public sealed class ConverterInfo
-		{
-			private string m_name;
-			private Type m_type;
-
-			/// <summary>
-			/// default constructor
-			/// </summary>
-			public ConverterInfo()
-			
-
-			/// <summary>
-			/// Gets or sets the name of the conversion pattern
-			/// </summary>
-			/// <remarks>
-			/// <para>
-			/// The name of the pattern in the format string
-			/// </para>
-			/// </remarks>
-			public string Name
-			{
-				get { return m_name; }
-				set { m_name = value; }
-			}
-
-			/// <summary>
-			/// Gets or sets the type of the converter
-			/// </summary>
-			/// <remarks>
-			/// <para>
-			/// The value specified must extend the 
-			/// <see cref="PatternConverter"/>
type.
-			/// </para>
-			/// </remarks>
-			public Type Type
-			{
-				get { return m_type; }
-				set { m_type = value; }
-			}
+            AddConverter(converterInfo);
 		}
 	}
 }

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=611621&r1=611620&r2=611621&view=diff
============================================================
==================
---
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
(original)
+++
logging/log4net/trunk/src/Repository/Hierarchy/Hierarchy.cs
Sun Jan 13 10:43:11 2008
 -1027,63
+1027,6 
 			Properties[propertyEntry.Key] = propertyEntry.Value;
 		}
 
-		/// <summary>
-		/// A class to hold the key and data for a property set
in the config file
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// A class to hold the key and data for a property set
in the config file
-		/// </para>
-		/// </remarks>
-		internal class PropertyEntry
-		{
-			private string m_key = null;
-			private object m_value = null;
-
-			/// <summary>
-			/// Property Key
-			/// </summary>
-			/// <value>
-			/// Property Key
-			/// </value>
-			/// <remarks>
-			/// <para>
-			/// Property Key.
-			/// </para>
-			/// </remarks>
-			public string Key
-			{
-				get { return m_key; }
-				set { m_key = value; }
-			}
-
-			/// <summary>
-			/// Property Value
-			/// </summary>
-			/// <value>
-			/// Property Value
-			/// </value>
-			/// <remarks>
-			/// <para>
-			/// Property Value.
-			/// </para>
-			/// </remarks>
-			public object Value
-			{
-				get { return m_value; }
-				set { m_value = value; }
-			}
-
-			/// <summary>
-			/// Override <c>Object.ToString</c> to
return sensible debug info
-			/// </summary>
-			/// <returns>string info about this
object</returns>
-			public override string ToString()
-			{
-				return "PropertyEntry(Key="+m_key+",
Value="+m_value+")";
-			}
-		}
-
 		#endregion Private Instance Methods
 
 		#region Private Instance Fields

Added: logging/log4net/trunk/src/Util/ConverterInfo.cs
URL: http://svn.
apache.org/viewvc/logging/log4net/trunk/src/Util/ConverterIn
fo.cs?rev=611621&view=auto
============================================================
==================
--- logging/log4net/trunk/src/Util/ConverterInfo.cs (added)
+++ logging/log4net/trunk/src/Util/ConverterInfo.cs Sun Jan
13 10:43:11 2008
 -0,0
+1,73 
+using System;
+
+namespace log4net.Util
+{
+    /// <summary>
+    /// Wrapper class used to map converter names to
converter types
+    /// </summary>
+    /// <remarks>
+    /// <para>
+    /// Pattern converter info class used during
configuration by custom
+    /// PatternString and PatternLayer converters.
+    /// </para>
+    /// </remarks>
+    public sealed class ConverterInfo
+    {
+        private string m_name;
+        private Type m_type;
+        private readonly PropertiesDictionary properties =
new PropertiesDictionary();
+
+        /// <summary>
+        /// default constructor
+        /// </summary>
+        public ConverterInfo()
+        {
+        }
+
+        /// <summary>
+        /// Gets or sets the name of the conversion
pattern
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The name of the pattern in the format string
+        /// </para>
+        /// </remarks>
+        public string Name
+        {
+            get { return m_name; }
+            set { m_name = value; }
+        }
+
+        /// <summary>
+        /// Gets or sets the type of the converter
+        /// </summary>
+        /// <remarks>
+        /// <para>
+        /// The value specified must extend the 
+        /// <see cref="PatternConverter"/>
type.
+        /// </para>
+        /// </remarks>
+        public Type Type
+        {
+            get { return m_type; }
+            set { m_type = value; }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param
name="entry"></param>
+        public void AddProperty(PropertyEntry entry)
+        {
+            properties[entry.Key] = entry.Value;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public PropertiesDictionary Properties
+        {
+            get { return properties; }
+        }
+    }
+}

Modified:
logging/log4net/trunk/src/Util/PatternConverter.cs
URL: http://svn.apache.org/viewvc/logging/log
4net/trunk/src/Util/PatternConverter.cs?rev=611621&r1=61
1620&r2=611621&view=diff
============================================================
==================
--- logging/log4net/trunk/src/Util/PatternConverter.cs
(original)
+++ logging/log4net/trunk/src/Util/PatternConverter.cs Sun
Jan 13 10:43:11 2008
 -372,5
+372,16 
 		}
 
 		#endregion
+
+        private PropertiesDictionary properties;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public PropertiesDictionary Properties
+	    {
+	        get { return properties; }
+	        set { properties = value; }
+	    }
 	}
 }

Modified: logging/log4net/trunk/src/Util/PatternParser.cs
URL: http://svn.apache.org/viewvc/logging/log4ne
t/trunk/src/Util/PatternParser.cs?rev=611621&r1=611620&a
mp;r2=611621&view=diff
============================================================
==================
--- logging/log4net/trunk/src/Util/PatternParser.cs
(original)
+++ logging/log4net/trunk/src/Util/PatternParser.cs Sun Jan
13 10:43:11 2008
 -27,6
+27,7 
 using log4net.Layout;
 using log4net.Core;
 using log4net.DateFormatter;
+using log4net.Layout.Pattern;
 using log4net.Util;
 
 namespace log4net.Util
 -324,8
+325,8 
 			LogLog.Debug(declaringType, "Converter
["+converterName+"] Option ["+option+"]
Format
[min="+formattingInfo.Min+",max="+formattingI
nfo.Max+",leftAlign="+formattingInfo.LeftAlign+&qu
ot;]");
 
 			// Lookup the converter type
-			Type converterType =
(Type)m_patternConverters[converterName];
-			if (converterType == null)
+            ConverterInfo converterInfo =
(ConverterInfo)m_patternConverters[converterName];
+			if (converterInfo == null)
 			{
 				LogLog.Error(declaringType, "Unknown converter
name ["+converterName+"] in conversion
pattern.");
 			}
 -335,19
+336,20 
 				PatternConverter pc = null;
 				try
 				{
-					pc =
(PatternConverter)Activator.CreateInstance(converterType);
+                    pc =
(PatternConverter)Activator.CreateInstance(converterInfo.Typ
e);
 				}
 				catch(Exception createInstanceEx)
 				{
-					LogLog.Error(declaringType, "Failed to create
instance of Type ["+converterType.FullName+"]
using default constructor. Exception:
"+createInstanceEx.ToString());
+                    LogLog.Error(declaringType,
"Failed to create instance of Type [" +
converterInfo.Type.FullName + "] using default
constructor. Exception: " +
createInstanceEx.ToString());
 				}
 
 				// formattingInfo variable is an instance variable,
occasionally reset 
 				// and used over and over again
 				pc.FormattingInfo = formattingInfo;
 				pc.Option = option;
+                pc.Properties = converterInfo.Properties;
 
-				IOptionHandler optionHandler = pc as IOptionHandler;
+			    IOptionHandler optionHandler = pc as
IOptionHandler;
 				if (optionHandler != null)
 				{
 					optionHandler.ActivateOptions();

Modified: logging/log4net/trunk/src/Util/PatternString.cs
URL: http://svn.apache.org/viewvc/logging/log4ne
t/trunk/src/Util/PatternString.cs?rev=611621&r1=611620&a
mp;r2=611621&view=diff
============================================================
==================
--- logging/log4net/trunk/src/Util/PatternString.cs
(original)
+++ logging/log4net/trunk/src/Util/PatternString.cs Sun Jan
13 10:43:11 2008
 -236,7
+236,7 
 	/// </list>
 	/// <para>
 	/// Additional pattern converters may be registered with a
specific <see cref="PatternString"/>
-	/// instance using <see
cref="AddConverter(PatternString.ConverterInfo)"/&
gt; or
+	/// instance using <see
cref="AddConverter(ConverterInfo)"/> or
 	/// <see cref="AddConverter(string, Type)"
/>.
 	/// </para>
 	/// <para>
 -399,7
+399,10 
 			// Add all the builtin patterns
 			foreach(DictionaryEntry entry in s_globalRulesRegistry)
 			{
-				patternParser.PatternConverters.Add(entry.Key,
entry.Value);
+                ConverterInfo converterInfo = new
ConverterInfo();
+                converterInfo.Name = (string)entry.Key;
+                converterInfo.Type = (Type)entry.Value;
+               
patternParser.PatternConverters.Add(entry.Key,
converterInfo);
 			}
 			// Add the instance patterns
 			foreach(DictionaryEntry entry in
m_instanceRulesRegistry)
 -464,7
+467,13 
 		/// </remarks>
 		public void AddConverter(ConverterInfo converterInfo)
 		{
-			AddConverter(converterInfo.Name, converterInfo.Type);
+            if (converterInfo == null) throw new
ArgumentNullException("converterInfo");
+
+            if
(!typeof(PatternConverter).IsAssignableFrom(converterInfo.Ty
pe))
+            {
+                throw new ArgumentException("The
converter type specified [" + converterInfo.Type +
"] must be a subclass of
log4net.Util.PatternConverter",
"converterInfo");
+            }
+            m_instanceRulesRegistry[converterInfo.Name] =
converterInfo;
 		}
 
 		/// <summary>
 -482,66
+491,11 
 			if (name == null) throw new
ArgumentNullException("name");
 			if (type == null) throw new
ArgumentNullException("type");
 
-			if (!typeof(PatternConverter).IsAssignableFrom(type))
-			{
-				throw new ArgumentException("The converter type
specified ["+type+"] must be a subclass of
log4net.Util.PatternConverter", "type");
-			}
-			m_instanceRulesRegistry[name] = type;
-		}
-
-		/// <summary>
-		/// Wrapper class used to map converter names to
converter types
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// Wrapper class used to map converter names to
converter types
-		/// </para>
-		/// </remarks>
-		public sealed class ConverterInfo
-		{
-			private string m_name;
-			private Type m_type;
-
-			/// <summary>
-			/// default constructor
-			/// </summary>
-			public ConverterInfo()
-			
-
-			/// <summary>
-			/// Gets or sets the name of the conversion pattern
-			/// </summary>
-			/// <value>
-			/// The name of the conversion pattern
-			/// </value>
-			/// <remarks>
-			/// <para>
-			/// Gets or sets the name of the conversion pattern
-			/// </para>
-			/// </remarks>
-			public string Name
-			{
-				get { return m_name; }
-				set { m_name = value; }
-			}
+            ConverterInfo converterInfo = new
ConverterInfo();
+            converterInfo.Name = name;
+            converterInfo.Type = type;
 
-			/// <summary>
-			/// Gets or sets the type of the converter
-			/// </summary>
-			/// <value>
-			/// The type of the converter
-			/// </value>
-			/// <remarks>
-			/// <para>
-			/// Gets or sets the type of the converter
-			/// </para>
-			/// </remarks>
-			public Type Type
-			{
-				get { return m_type; }
-				set { m_type = value; }
-			}
+            AddConverter(converterInfo);
 		}
 	}
 }

Added: logging/log4net/trunk/src/Util/PropertyEntry.cs
URL: http://svn.
apache.org/viewvc/logging/log4net/trunk/src/Util/PropertyEnt
ry.cs?rev=611621&view=auto
============================================================
==================
--- logging/log4net/trunk/src/Util/PropertyEntry.cs (added)
+++ logging/log4net/trunk/src/Util/PropertyEntry.cs Sun Jan
13 10:43:11 2008
 -0,0
+1,59 
+namespace log4net.Util
+{
+    /// <summary>
+    /// A class to hold the key and data for a property set
in the config file
+    /// </summary>
+    /// <remarks>
+    /// <para>
+    /// A class to hold the key and data for a property set
in the config file
+    /// </para>
+    /// </remarks>
+    public class PropertyEntry
+    {
+        private string m_key = null;
+        private object m_value = null;
+
+        /// <summary>
+        /// Property Key
+        /// </summary>
+        /// <value>
+        /// Property Key
+        /// </value>
+        /// <remarks>
+        /// <para>
+        /// Property Key.
+        /// </para>
+        /// </remarks>
+        public string Key
+        {
+            get { return m_key; }
+            set { m_key = value; }
+        }
+
+        /// <summary>
+        /// Property Value
+        /// </summary>
+        /// <value>
+        /// Property Value
+        /// </value>
+        /// <remarks>
+        /// <para>
+        /// Property Value.
+        /// </para>
+        /// </remarks>
+        public object Value
+        {
+            get { return m_value; }
+            set { m_value = value; }
+        }
+
+        /// <summary>
+        /// Override <c>Object.ToString</c> to
return sensible debug info
+        /// </summary>
+        /// <returns>string info about this
object</returns>
+        public override string ToString()
+        {
+            return "PropertyEntry(Key=" + m_key +
", Value=" + m_value + ")";
+        }
+    }
+}

Modified: logging/log4net/trunk/src/log4net.vs2005.csproj
URL: http://svn.apache.org/viewvc/logging/log4ne
t/trunk/src/log4net.vs2005.csproj?rev=611621&r1=611620&a
mp;r2=611621&view=diff
============================================================
==================
--- logging/log4net/trunk/src/log4net.vs2005.csproj
(original)
+++ logging/log4net/trunk/src/log4net.vs2005.csproj Sun Jan
13 10:43:11 2008
 -543,6
+543,7 
     <Compile
Include="UtilContextPropertiesBase.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="UtilConverterInfo.cs"
/>
     <Compile
Include="UtilCountingQuietTextWriter.cs">
       <SubType>Code</SubType>
     </Compile>
 -637,6
+638,7 
     <Compile
Include="UtilPropertiesDictionary.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="UtilPropertyEntry.cs"
/>
     <Compile
Include="UtilProtectCloseTextWriter.cs">
       <SubType>Code</SubType>
     </Compile>



[1]

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