Author: rgrabowski
Date: Thu Oct 12 08:23:13 2006
New Revision: 463273
URL: http://svn.apache.org/viewvc?view=rev&rev=463273
Log:
Changed Cache, Context, and Request converters to output all of their key/value
pairs if the Option property is not set. Added overload to
PatternConverter.WriteDictionary to accept an IDictionaryEnumerator to allow
the AspNetCachePatternConverter to send its contents (Cache.GetEnumerator()) to
WriteDictionary to be auto-formatted. LOG4NET-87.
Modified:
logging/log4net/trunk/src/Layout/Pattern/AspNetCachePatternConverter.cs
logging/log4net/trunk/src/Layout/Pattern/AspNetContextPatternConverter.cs
logging/log4net/trunk/src/Layout/Pattern/AspNetRequestPatternConverter.cs
logging/log4net/trunk/src/Util/PatternConverter.cs
Modified:
logging/log4net/trunk/src/Layout/Pattern/AspNetCachePatternConverter.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/Layout/Pattern/AspNetCachePatternConverter.cs?view=diff&rev=463273&r1=463272&r2=463273
==============================================================================
--- logging/log4net/trunk/src/Layout/Pattern/AspNetCachePatternConverter.cs
(original)
+++ logging/log4net/trunk/src/Layout/Pattern/AspNetCachePatternConverter.cs Thu
Oct 12 08:23:13 2006
@@ -62,7 +62,7 @@
}
else
{
- WriteObject(writer,
loggingEvent.Repository, HttpRuntime.Cache);
+ WriteObject(writer,
loggingEvent.Repository, HttpRuntime.Cache.GetEnumerator());
}
}
else
Modified:
logging/log4net/trunk/src/Layout/Pattern/AspNetContextPatternConverter.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/Layout/Pattern/AspNetContextPatternConverter.cs?view=diff&rev=463273&r1=463272&r2=463273
==============================================================================
--- logging/log4net/trunk/src/Layout/Pattern/AspNetContextPatternConverter.cs
(original)
+++ logging/log4net/trunk/src/Layout/Pattern/AspNetContextPatternConverter.cs
Thu Oct 12 08:23:13 2006
@@ -52,7 +52,14 @@
/// </remarks>
protected override void Convert(TextWriter writer, LoggingEvent
loggingEvent, HttpContext httpContext)
{
- WriteObject(writer, loggingEvent.Repository,
httpContext.Items[Option]);
+ if (Option != null)
+ {
+ WriteObject(writer, loggingEvent.Repository,
httpContext.Items[Option]);
+ }
+ else
+ {
+ WriteObject(writer, loggingEvent.Repository,
httpContext.Items);
+ }
}
}
}
Modified:
logging/log4net/trunk/src/Layout/Pattern/AspNetRequestPatternConverter.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/Layout/Pattern/AspNetRequestPatternConverter.cs?view=diff&rev=463273&r1=463272&r2=463273
==============================================================================
--- logging/log4net/trunk/src/Layout/Pattern/AspNetRequestPatternConverter.cs
(original)
+++ logging/log4net/trunk/src/Layout/Pattern/AspNetRequestPatternConverter.cs
Thu Oct 12 08:23:13 2006
@@ -61,7 +61,7 @@
}
else
{
- WriteObject(writer,
loggingEvent.Repository, httpContext.Request);
+ WriteObject(writer,
loggingEvent.Repository, httpContext.Request.Params);
}
}
else
Modified: logging/log4net/trunk/src/Util/PatternConverter.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/Util/PatternConverter.cs?view=diff&rev=463273&r1=463272&r2=463273
==============================================================================
--- logging/log4net/trunk/src/Util/PatternConverter.cs (original)
+++ logging/log4net/trunk/src/Util/PatternConverter.cs Thu Oct 12 08:23:13 2006
@@ -16,12 +16,10 @@
//
#endregion
-using System;
using System.Text;
using System.IO;
using System.Collections;
-using log4net.Core;
using log4net.Util;
using log4net.Repository;
@@ -292,12 +290,36 @@
/// </remarks>
protected static void WriteDictionary(TextWriter writer,
ILoggerRepository repository, IDictionary value)
{
+ WriteDictionary(writer, repository,
value.GetEnumerator());
+ }
+
+ /// <summary>
+ /// Write an dictionary to a <see cref="TextWriter"/>
+ /// </summary>
+ /// <param name="writer">the writer to write to</param>
+ /// <param name="repository">a <see cref="ILoggerRepository"/>
to use for object conversion</param>
+ /// <param name="value">the value to write to the writer</param>
+ /// <remarks>
+ /// <para>
+ /// Writes the <see cref="IDictionaryEnumerator"/> to a writer
in the form:
+ /// </para>
+ /// <code>
+ /// {key1=value1, key2=value2, key3=value3}
+ /// </code>
+ /// <para>
+ /// If the <see cref="ILoggerRepository"/> specified
+ /// is not null then it is used to render the key and value to
text, otherwise
+ /// the object's ToString method is called.
+ /// </para>
+ /// </remarks>
+ protected static void WriteDictionary(TextWriter writer,
ILoggerRepository repository, IDictionaryEnumerator value)
+ {
writer.Write("{");
bool first = true;
// Write out all the dictionary key value pairs
- foreach(DictionaryEntry entry in value)
+ while (value.MoveNext())
{
if (first)
{
@@ -307,9 +329,9 @@
{
writer.Write(", ");
}
- WriteObject(writer, repository, entry.Key);
+ WriteObject(writer, repository, value.Key);
writer.Write("=");
- WriteObject(writer, repository, entry.Value);
+ WriteObject(writer, repository, value.Value);
}
writer.Write("}");