Author: bodewig
Date: Sat Apr 4 07:23:52 2015
New Revision: 1671243
URL: http://svn.apache.org/r1671243
Log:
LOG4NET-407 with TPL the code can be simplified since there will never be any
concurrent AsyncAppend invocations
Modified:
logging/log4net/trunk/src/log4net/Appender/AsyncAppender.cs
Modified: logging/log4net/trunk/src/log4net/Appender/AsyncAppender.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net/Appender/AsyncAppender.cs?rev=1671243&r1=1671242&r2=1671243&view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net/Appender/AsyncAppender.cs (original)
+++ logging/log4net/trunk/src/log4net/Appender/AsyncAppender.cs Sat Apr 4
07:23:52 2015
@@ -158,6 +158,18 @@ namespace log4net.Appender
private void AsyncAppend(object state)
{
+#if FRAMEWORK_4_0_OR_ABOVE
+ LoggingEvent[] loggingEvents = null;
+ lock (lockObject)
+ {
+ loggingEvents = events.ToArray();
+ events.Clear();
+ }
+ if (loggingEvents.Length > 0)
+ {
+ base.Append(loggingEvents);
+ }
+#else
lock (lockObject)
{
if (inLoggingLoop)
@@ -190,15 +202,17 @@ namespace log4net.Appender
inLoggingLoop = false;
}
}
+#endif
}
private FixFlags m_fixFlags = FixFlags.All;
private readonly object lockObject = new object();
private readonly List<LoggingEvent> events = new
List<LoggingEvent>();
- private bool inLoggingLoop = false;
private bool closed = false;
#if FRAMEWORK_4_0_OR_ABOVE
- private readonly Task logTask;
+ private readonly Task logTask;
+#else
+ private bool inLoggingLoop = false;
#endif
}
}